McPhee was originally recruited by Fremantle from the Dandenong Stingrays in the TAC Cup with the 39th selection in the 2000 AFL Draft. He made his AFL debut in 2001 and was nominated for the AFL Rising Star award that year. By the end of 2002, McPhee played 25 games in total for the Dockers. He was then traded back to Essendon in his home state of Victoria in a three-way deal also involving Brisbane. Essendon had previously hoped to draft him late in the 2000 draft, but Fremantle had picked him ahead of where Essendon had expected him to be taken.[3]

In McPhee's first year at Essendon he played every game and his tough approach earned him the club's "most courageous player" award. However it was in 2004 that McPhee really made his mark as an AFL player. In that year he was selected on the half-back flank in the All-Australian team, won the W.S. Crichton Medal as Essendon's best and fairest player and was Essendon's highest vote getter in the Brownlow Medal.[4]

In 2005, McPhee was restricted to only 14 games through injury and could not repeat his feats of 2004.[5]

On 30 July 2006, McPhee played his 100th senior game at the Telstra Dome. It was capped off with a win over the Brisbane Lions which broke, what was at the time, the club's longest streak without a win in its history, when he took a spectacular mark and also kicked a magnificent goal on the run.[6] He missed out on the honour the previous week because of a one match suspension served for striking St Kilda's Robert Harvey in an attempted spoil.

On 25 April 2009, at the Anzac Day match, McPhee celebrated his 150th game with a five-point victory over Collingwood.[7]

After long discussions about a new contract with the Bombers, McPhee did not sign a new contract with Essendon by the 2.00pm deadline on 10 November 2009. Many believe McPhee left Essendon due to a fall out with the Coach of Essendon at the time, Matthew Knights. McPhee was expected to nominate to be drafted to another club and as expected, his former club Fremantle selected him with their selection in the pre-season draft. The possible move to Fremantle had been heavily criticised in some circles, partly as a result of the club's recent history in drafting mature-age recruits, but it has been applauded in other circles as the club gave up virtually nothing to land him.[8] His first match against his old club Essendon saw him hit the post twice, drop marks and kick out of bounds on the full right in front of Bombers fans who booed him consistently throughout the match. Despite his clangers, Fremantle managed to upset Essendon by 44 points.[9][10]

After McPhee's tough start in his return to Fremantle, he improved as the season went on after a change in role. McPhee played his best football for the Dockers towards the end of the season as a run-with player (tagger), a role which requires stopping the influence of the opposition team's most damaging players. McPhee's best game came against Hawthorn in the Elimination final, keeping Hawks champion Luke Hodge to just 13 disposals, and only 5 in the first three quarters.

In 2012 McPhee returned to the backline under new coach Ross Lyon, but mainly played on the smaller forwards.[11]

At the end of the 2012 season, a month after signing a one-year contract extension, McPhee retired from AFL football for family reasons. While there was much speculation he would return to his former club, the Essendon Football Club, he returned to Melbourne to work for his father-in-law's company.[11] He continues to play football and as of 2015 is playing for St Mary's in the Geelong Football League.[12]