Germany coach Joachim Low has dropped forward Cacau and teenager Julian Draxler from his Euro 2012 squad after cutting four players to finalise his list on Monday.
The Cacau omission means Low will travel to Poland and Ukraine with only two out-and-out strikers in Mario Gomez and Miroslav Klose.
"I knew from the start that there would be a lot of competition," said the 31-year-old Brazil-born striker who was part of the 2010 World Cup squad but lost his starting spot at VfB Stuttgart this season.
"Like the younger players I am also very disappointed but still feel part of the team and wish them from the bottom of my heart to play a great Euro."
Low also left 20-year-old Borussia Monchengladabach goalkeeper Marc-Andre ter Stegen at home after he conceded five goals in the 5-3 friendly defeat by Switzerland on Saturday.
"I am obviously disappointed. But the defeat on my international debut was an important moment in my career and I hope to get the chance again," Ter Stegen said.
Midfielder Sven Bender (pictured) was also dropped but his twin brother Lars made the squad.
Germany are in Group B and play Portugal in Ukraine's Lviv on June 9 before facing Netherlands and Denmark.
Goalkeepers: Manuel Neuer (Bayern Munich), Tim Wiese (Werder Bremen), Ron-Robert Zieler (Hannover 96).
Defenders: Holger Badstuber (Bayern Munich), Jerome Boateng (Bayern Munich), Benedikt Howedes (Schalke 04), Mats Hummels (Borussia Dortmund), Philipp Lahm (Bayern Munich), Per Mertesacker (Arsenal), Marcel Schmelzer (Borussia Dortmund).
Midfielders: Lars Bender (Bayer Leverkusen), Mario Gotze (Borussia Dortmund), Ilkay Gundogan (Borussia Dortmund), Sami Khedira (Real Madrid), Toni Kroos (Bayern Munich), Thomas Muller (Bayern Munich), Mesut Ozil (Real Madrid), Lukas Podolski (Cologne), Marco Reus (Borussia Monchengladbach), Andre Schuerrle (Bayer Leverkusen), Bastian Schweinsteiger (Bayern Munich).
Forwards: Mario Gomez (Bayern Munich), Miroslav Klose (Lazio).