FOXBOROUGH, Mass. -- Bruno Alves scored a header in stoppage time to give Portugal a 1-0 win over Mexico in a World Cup warm-up on Friday night.
Mexico had dominated play in the second half before Joao Moutinho's free-kick from about 35 yards was headed past goalkeeper Guillermo Ochoa.
But Mexico, ranked 20th in the world after barely qualifying for the World Cup, showed improvement in their final friendly before their opening game next Friday against Cameroon.
Fourth-ranked Portugal played without Ballon d'or winner Cristiano Ronaldo, who is recovering from tendinosis and a muscle injury, both in his left leg.
Until Alves scored, El Tri had the best chances in the second half, with Hector Herrera forcing goalkeeper Eduardo to make two key saves.
Ronaldo, the second-leading goalscorer in Portugal history, also was sidelined for Portugal's 3-1 loss to Brazil in Foxborough last Sept. 10 because of tendinitis.
Portugal were without two other injured players, midfielder Raul Meireles and defender Pepe. There was no word whether any of the three would play in Portugal's World Cup opener June 16 against Germany.
Portugal play their final pre-World Cup friendly next Tuesday against Ireland at MetLife Stadium in New Jersey.
With a crowd of 56,292 at Gillette Stadium, both teams played more conservatively in the first half, with Portugal forward Eder having the best chances with four shots.
Mexico attacked from the start of the second half, looking little like the team who had to beat New Zealand in a play-off simply to get into the World Cup.
In the 52nd minute, Andres Guardado fired a 22-yard shot with his left foot that just went wide right. Then Herrera's shot from 6 yards on the right was knocked down by a charging Eduardo in the 62nd minute. And in the 68th minute, Eduardo stopped a 20-yard shot by Herrera.
Eder had some decent opportunities in the first half. He headed a ball over the crossbar from 15 yards in the 20th minute, had a hard shot knocked down by Jose Corona in the 22nd minute, volleyed a 20-yarder wide in the 38th minute, and headed a ball wide from about 10 yards in the 39th minute.