На чемпионате Европы 2008 года Швайнштайгер стал антигероем матча группового этапа со сборной Хорватии — он был удалён с поля, а сама игра закончилась поражением 1:2. В четвертьфинале турнира против Португалии Бастиан принял участие во всех трёх забитых мячах своей команды: он забил гол и отдал две голевые передачи, позволив Германии выиграть 3:2. В полуфинале с Турцией Швайнштайгер вновь отличился забитым мячом, немцы выиграли 3:2 и вышли в финал турнира, однако там победу одержала сборная Испании. В июне 2009 года Бастиан впервые вышел на поле в качестве капитана немецкой сборной, это произошло в товарищеском матче против ОАЭ.