Oakes began his career in Aston Villa's youth system. He played nineteen games for Gloucester City in 1992–93 and then had a loan spell at Scarborough in 1994 playing one league game. He finally got his chance to appear in Villa's first team at the start of the 1996–97 season. He made his debut on 17 August 1996 in a 2–1 defeat at Sheffield Wednesday, aged 22, deputising for the injured Mark Bosnich. Bosnich's injury record, and speculation he would be leaving to join Manchester United, gave Oakes opportunities over the next three seasons and he amassed 60 appearances in total for the club. He also won seven England Under-21 caps during his spell at Villa Park. However, after the club recruited David James following Bosnich's departure in 1999, Oakes requested a move.
Wolverhampton Wanderers
Oakes made the short journey to First Division club Wolverhampton Wanderers in October 1999 for £500,000, and soon ousted long-serving Mike Stowell as number one at Molineux. He remained as the first-team goalkeeper until September 2002, when he suffered a shoulder injury and was replaced by rookie Matt Murray. Oakes was honoured with a medal during the 2003 Football League First Division playoff final/play-off success against Sheffield United at the Millennium Stadium in May 2003. However, the fortunes of the two keepers turned in August 2003, when Murray sustained a back injury, and Oakes stepped into the breach for Wanderers' inaugural Premier League campaign. He performed admirably in what was a tough season, but was controversially replaced by new signing Paul Jones in January 2004. Oakes regained his place in October 2004, post-relegation, but lost his place through injury in October 2005, to Stefan Postma. Although Postma was later released, Murray's return to fitness meant that Oakes continued as deputy in 2006–07. He was given a free transfer in May 2007 after 220 appearances in total. Upon his release, Oakes drew praise from his former colleague Murray, stating that "I learned a lot from him and he has always been very supportive of me. Whoever signs him is going to have a top keeper."
Cardiff City
In July 2007, Oakes signed for Cardiff City on a one-year deal, linking up his former Wolves manager Dave Jones. He began the season on the bench but moved into the starting XI after several errors from the on-loan Ross Turnbull. With Turnbull returning from loan back to Middlesbrough, Oakes found his only competition to be Irishman David Forde and continued in the number one spot. However, Kasper Schmeichel was taken on loan from Manchester City in late October, which relegated Oakes to the bench, save one Football League Cup game at Liverpool. After Schmeichel returned to his parent club in early January, Oakes was called upon again by Cardiff, but Peter Enckelman was swiftly signed on loan from Blackburn Rovers for the rest of the season. Oakes chose to retire at the season's conclusion, his final involvement being as a substitute in their FA Cup Final game against Portsmouth.
Coaching career
Oakes worked as goalkeeping coach for Wrexham between 2008 and 2015, and between 2017 and 2018. After a year with Walsall, he returned to Wrexham in 2019.