Schäfer made his debut in the Bundesliga on matchday 11, 1 November 2003, as TSV 1860 München defeated VfL Bochum 3–1. After descending to the 2. Bundesliga at the end of that season, he established himself in the following years as a regular player. On 4 March 2005, Schäfer scored his first goal for 1860, helping the club to a 3–0 league win over Wacker Burghausen. On the final day of the 2004–05 season, he opened the scoring for 1860 in the 12th minute, but his side fell to a 4–3 defeat to LR Ahlen.
His only goal of the 2005–06 2. Bundesliga season came on the third matchday, heading in 1860's second goal of their 2–2 draw with SpVgg Greuther Fürth on 29 August 2005.
On 1 July 2007 he returned to the Bundesliga, signing for VfL Wolfsburg in a €1.2 million deal. He made his Bundesliga debut for Wolfsburg in Felix Magath's managerial debut on 11 August 2007, playing the full 90 minutes in the 1–3 defeat to Arminia Bielefeld. His first goal for the club came on 4 November, scoring on a pass from Marcelinho in the 49th minute, but Wolfsburg fell in an entertaining 3–5 defeat to Bochum.
He opened the scoring for Wolfsburg and provided two assists in their match against Borussia Dortmund on 15 December, scoring on the volley after 'keeper Roman Weidenfeller parried an initial shot from Ashkan Dejagah to Schäfer's feet, sending Wolfsburg on their way to a 4–0 victory. In his next appearance for the club, a league match against MSV Duisburg on 9 February 2008, Schäfer scored Wolfsburg's equalizer after an assist from Sascha Riether, helping the Wolves to a 2–1 comeback victory. On matchday 32, he picked up a pass from Christian Gentner and scored from the edge of the penalty-box to put Wolfsburg up 2–1 in the 28th minute over Eintracht Frankfurt, and a late Edin Džeko strike secured a 3–2 win for the Wolves, their first in five games. On the final day of the Bundesliga season, 17 May 2008, Schäfer received the ball from Grafite and hammered the ball into the goal from twenty yards out to score the game winner in the Wolves' 4–2 defeat of Dortmund and secure a spot for Wolfsburg in the UEFA Cup.
On 18 September 2008, Schäfer made his first appearance in European football, helping his side keep a clean sheet in the first round first-leg 1–0 victory over Rapid București. On 24 September, he scored his first DFB-Pokal goal for Wolfsburg, netting with his left foot after a cross from Mahir Sağlık, and also provided an assist to Džeko as the Wolves comfrotably defeated FC Oberneuland 7–0. Down 0–2 against Milan at the San Siro on 17 December, he picked out Cristian Zaccardo for Wolfsburg's first goal and a late Sağlık strike completed the comeback, securing a point and top spot in Group E. On 4 March 2009, he provided the assist for Džeko's first goal as Wolfsburg came from 0–2 down to draw level at half-time, but two second-half goals from Claudio Pizarro and a Diego strike secured a 5–2 win for Werder Bremen and a spot in the semi-finals of the German Cup.
On 4 April 2009, Schäfer assisted the go-ahead goal to Džeko in the 63rd minute, as Wolfsburg notched an eighth successive victory and completed an historic 5–1 defeat of Bayern Munich. On 2 May, he provided his eighth Bundesliga assist of the season, picking out Grafite for Wolfsburg's final goal of their 4–0 win over Hoffenheim. On 23 May, Schäfer played the entire match as Wolfsburg defeated Bremen 5–1 at the Volkswagen Arena, securing the club and the player their first Bundesliga title.
In his first Champions League match, Schäfer provided an assist for one of Grafite's three goals as the Wolves dispatched CSKA Moscow 3–1 to top Group B after the first round of fixtures. Schäfer received the first red card of his professional career in the second round of the DFB-Pokal on 23 September 2009, picking up two yellow cards in stoppage time as Wolfsburg fell to a 2–3 defeat to 1. FC Köln.
He made his first appearance of the 2014–15 season in the league on 21 September 2014, coming on as a late substitute for Junior Malanda in the Wolves' 4–1 defeat of Bayer Leverkusen. Schäfer made his first start of the campaign on matchday 3 of the Europa League, playing the entirety of Wolfsburg's 4–2 win over Krasnodar on 23 October. Schäfer continued to deputize in Ricardo Rodríguez's absence, providing an assist for Naldo and helping keep a clean-sheet in a 3–0 win over Mainz on 26 October.
In March 2017, Schäfer signed a contract with Tampa Bay Rowdies.
He made his international debut for Germany on 19 November 2008 in a friendly against England, replacing Marvin Compper in the 2–1 loss. He made his full debut for Germany on 29 May 2009, playing the entirety of their 1–1 draw with China at the Shanghai Stadium. On 12 August 2009, Schäfer participated in his first competitive game for the national side, a 2–0 win over Azerbaijan in a World Cup qualifying match in Baku.As of 27 February 2015
Lower Saxony Footballer of the Year: 2009