Es internacional desde el 6 de junio de 2004, cuando debutó con “Die Mannschaft” en la derrota por 2 a 0 a manos de Hungría en un amistoso jugado en Kaiserslautern.
Durante la Copa de las Confederaciones de Alemania 2005, el volante apareció con fuerza por primera vez. Luego de un año, Bastian Schweinsteiger fue pieza fundamental en el armado de la nacional que dirigió Jürgen Klinsmann durante el Mundial de Alemania 2006. Participó en los siete partidos de la Copa, donde Alemania terminó en la tercera posición luego de vencer a Portugal, y culminó con tres asistencias y dos goles. Durante el Mundial de Fútbol de Alemania 2006, Bastian Schweinsteiger jugó como extremo izquierdo, siendo titular en la mayor parte de los partidos que disputó; creó juego en ataque constantemente por su banda en el mediocampo. En el partido de apertura, dio los pases de gol a Miroslav Klose (2-1) y a Torsten Frings (el 4-2 final). En el partido contra Ecuador, recuperó una pelota rápida de Per Mertesacker y dio el pase con el que Miroslav Klose convertiría el 1-0 (3-0 final para Alemania).1
En el duelo por el tercer lugar, Schweinsteiger metió dos de los tres goles y cobró el tiro libre para que Armando Petit metiera el autogol con el que su selección obtuvo el tercer lugar en el Mundial.
Ha sido internacional en 90 ocasiones con la Selección de Alemania, anotando 23 goles.
Después del Mundial de Sudáfrica, la prensa alemana (Welt am Sonntag) le preguntó quién era para él, el capitán de la selección alemanana, reabriendo la polémica: "Es el capitán de la selección (Michael Ballack) y, si vuelve, recuperará también el brazalete". "Philipp (Lahm) ha asumido el cargo por la lesión de Michael y ha hecho un buen trabajo", apunta Schweinsteiger. "Pero dos capitanes son demasiados para un puesto. Para mí, el capitán del equipo es Ballack", añadió el jugador.