Born in Subiaco, Western Australia, Voges was raised in Rockingham, and attended Safety Bay Senior High School. In WACA District Cricket, he originally fell under the Rockingham-Mandurah District Cricket Club's recruitment zone, but transferred to the Melville Cricket Club on a special permit. He went on to tour with the Western Australia under-19 cricket team, and captained the side during the 1998–99 season, later playing for Australia at under-19 level. Voges was the winner of the 2001–02 Olly Cooley Medal for the best player in the WACA grade cricket competition. Voges made his first-class debut on 8 December 2002 for Western Australia in the Pura Cup match against Tasmania. After averaging only 17 with the bat in the four matches he played, he spent the 2003/04 season playing grade cricket.
He made his List A debut in the ING Cup match against Tasmania in October 2004, and was also recalled to the Pura Cup side. In just his second one-day match at North Sydney Oval, Voges set the record for the fastest domestic one-day century, bringing up his 100 off only 62 balls (and hitting the ING sign on one of his 7 sixes, which earned him $50,000). He finished the ING Cup season with an average of just under 32, and a Pura Cup average of 72 from 6 matches.
2005/06 was a mixed season, which saw him average 34 in Pura Cup and 49 in the ING Cup.
In 2006/07, Voges enjoyed a very good start to the season with two first-class centuries in his first three matches. This good form led to his surprise selection to the Australian squad for the 3rd Ashes Test. On Friday, 8 December 2006, Australian selectors had been expected to select an unchanged lineup, but due to the shock retirement of Damien Martyn, selection processes were re-thought with Andrew Symonds and Voges drafted into the 13-man lineup. Voges also scored 150 against Tasmania, nearly chasing a total of 400 down early in the season.
Voges learned of the news during a tour match between his side, the Cricket Australia XI, and the ECB Chairman's XI at Lilac Hill. Of his learning of the selection, Voges said: "Tony Dodemaide tapped me on the shoulder and he said: 'Come with me. You're being substituted'. I thought I was in trouble."  Voges made his ODI debut on 20 February 2007 vs New Zealand in the Chappell–Hadlee Series before being selected for the Tour of India in September 2007.
Catching the ball on the boundary line, but not in full control (as the rules for a catch demand) he tossed the ball forwards into the air as he tumbled backwards over the boundary rope. He then scrambled back into the field of play and took a diving catch low to the ground. The 3rd umpire confirmed a valid catch and centre umpire Paul Reiffel (former Australian bowler) gave McCullum out. Australia went on to win the match by one run.
Voges was included in Australia's one-day squad for the tour of South Africa. Batsman Marcus North was called up as batting cover while Voges returned home to marry his fiancée. Voges commented that "It's a big thing to give up an opportunity to play for Australia. But I guess you only get married once and that's important to me and a decision I've made and one that I'm comfortable with".
Voges also played in the ODI match against Scotland on 28 August 2009. He made 72, the second highest score behind David Hussey who made 111. Australia won the match.
In April 2015, Voges was called up to the Australian Test Cricket squad for the first time in his career for the away Test series against the West Indies and England, respectively. He made his maiden Test century on his debut against the West Indies in Dominica. He also became the oldest Test debut centurion from all nations. He also became the oldest player to win a man-of-the-match award on Test debut.