Voges, who resumed on 9 after lunch and reached his century before tea at Bellerive Oval, was unbeaten on 174 at the end of play.
Fellow Western Australian player Marsh made 97 in the third session to finish the day on 139 not out as the frustrated West Indies bowlers failed to take a wicket after lunch.
Australia brought up its 400 in 78 overs, an average of more than five runs per over, and finished the day with an average of 4.92.
"I started a little bit slow, but once I got into my rhythm I felt really good out there and I think Vogesy really helped with that," Marsh said.
"He was going really well and scoring runs freely and sort of got me going as well. I thought he batted beautifully today, and to be out there with one of my really good mates (and) to both get hundreds for our country was very special."
Television commentator and former legspinning great Shane Warne was critical of West Indies captain Jason Holder for not taking the second new ball when it was available after 80 overs, and for not moving players in from the boundary to the slip cordon in an attempt to take a late wicket.
It was a big first day for scoring in the region, with New Zealand making 409-8 on the opening day of its home test against Sri Lanka at Dunedin.
Voges made his first-class debut 13 years ago but did not earn his first test cap for Australia until June on this year's tour of the Caribbean. It was the third career centuries for each player, and Marsh's first at an Australian ground.
"It's something I've been working really hard to try and do," said Marsh. "I got 99 last year (against India), so to get to three figures on home soil was pretty special."
Earlier, West Indies left-arm spinner Jomel Warrican took the important wickets of opener David Warner and captain Steven Smith as Australia went to lunch at 121-3 after winning the toss and electing to bat.
Warner and Joe Burns hit a combined 12 boundaries in an opening partnership of 75 runs from the first eight overs, but Australia went on to lose three wickets for 51.
Burns was clean-bowled by paceman Shannon Gabriel for 33 and Smith was caught at first slip off Warrican for 10. Warner scored 64 before being caught behind in the second-last over before lunch.
"We had Australia at 120-odd for three, but Marsh and Voges were both very good, and they put us on the back foot," Warrican told Australian Broadcasting Corporation radio.
"Later in the day, it became more difficult for the bowlers to get wickets. It just wasn't disciplined to be honest. We will have to come out tomorrow and bowl really well."
Gabriel left the pitch during the final session with a left ankle injury and was expected to undergo later scans. He finished the day with 1-59 off 10 overs.
Australia gave fast bowler James Pattinson his first test start in 18 months, replacing the injured Mitchell Starc. Cricket Australia said Thursday that Starc, injured in the final New Zealand test last month, will undergo surgery on his right ankle.
Australia 1st Innings: 438 for 3 (Adam Voges 174 not out, Shaun Marsh 139 not out, David Warner 64; Jomel Warrican 2-111). FULL SCORECARD