GERMANY
Oliver Kahn: A couple of shaky moments late on but otherwise a safe pair of hands on his return to the side. 7
Philipp Lahm: Although playing on the right this time, he drove forward much as he has all tournament. 6
Jens Nowotny: Given a chance due to injury and was solid enough. 6
Christoph Metzelder: Was there at the back when needed. 6
Marcell Jansen: Another reliable performer in the German side. 6
Bernd Schneider: Made some good runs and always looked lively. 7
Sebastian Kehl: An energetic and committed all-round display, added drive and bite. 7
Torsten Frings: Dynamic going forward and always getting back to break up attacks. 8
Bastian Schweinsteiger: Was snapping into tackles and racing forward from the start. Wonderfully committed display capped by two fine goals and the setting up of another. 9
Miroslav Klose: A committed display, made some strong runs and had a good early chance but quieter after the break. 6
Lukas Podolski: Struck a fierce free-kick and made darting runs in first half but saw little of ball in second. 6
Substitutes:
Oliver Neuville (on for Klose, 63): Offered an option but had little impact. 5
Mike Hanke (on for Podolski, 70): Did not get into the game. 5
Thomas Hitzlsperger (on for Schweinsteiger, 78): Made late entrance. 5
PORTUGAL
Ricardo: Made some good saves in first half but was exposed by Schweinsteiger's opening goal and eventually beaten three times. 5
Paulo Ferreira: Made some timely interventions but was booked for a late challenge. 6
Miguel: Not the driving force of previous games. 5
Fernando Meira: Showed an astute defensive mind. 6
Nuno Valente: A solid enough performance. 6
Costinha: Made a couple of good blocks but was caught out once and booked. Substituted at half-time. 5
Maniche: One of the most active players on the field, always looking to create something. 7
Deco: Again pulling the strings in the Portugal midfield. 8
Cristiano Ronaldo: At times looked Portugal's most dangerous player but continues to undermine his performances with diving and unnecessary showboating. 7
Pauleta: Got into good positions but missed a couple of good chances. 6
Simao: Made some good runs but quieter after the break. 6
Substitutes:
Armando Petit (on for Costinha, 46): Diverted Schweinsteiger free-kick into his own goal soon after coming on. 6
Nuno Gomes (on for Nuno Valente, 68): In the right place to head in Figo's cross. 7
Luis Figo (on for Pauleta, 76): Created a goal with a great cross after being granted a late cameo for his international swansong. 7