First-half goals by Randall Brenes and Joel Campbell, had put Costa Rica into an unlikely lead but David Silva scored in the 83rd minute. Villa then got his 51st international goal in the second minute of added time.
Germany completed a miserable midweek for the Dutch as they sauntered to a 3-0 win in last night’s friendly in Hamburg.
The Netherlands, who had seen their under-21 team beaten 2-1 by Scotland 24 hours earlier in Nijmegen, were missing several key players and were beaten by goals from Thomas Muller, Miroslav Klose and Mesut Ozil.
France left the Stade De France pitch to jeers after being held to a 0-0 a draw by Belgium in a match of few chances in which the home side barely tested Belgian keeper Thibaut Courtois.
Euro 2012 finalists Denmark came from a goal down to defeat Mixu Paatelainen’s Finland 2-1 in Esbjerg. Finland took the lead in the 18th minute when Kasper Hamalainen’s shot was fumbled by goalkeeper Anders Lindegaard and former Kilmarnock midfielder Alexei Eremenko netted. Daniel Agger equalised in the 57th minute and Sunderland striker Nicklas Bendtner grabbed the winner two minutes later.
The United States won 3-2 in Slovenia, just their second win since Jurgen Klinsmann took over as coach. Edson Buddle got the opener, Tim Matavz scored for Slovenia then Clint Dempsey and Jozy Altidore put the US 3-1 up late in the first half before Matavz netted again. Captain Carlos Bocanegra of Rangers became the 12th American to make 100 international appearances.
Marko Devic scored an injury-time winner to give European 2012 co-hosts Ukraine a 2-1 win victory over Austria in the first match at the Lviv Arena.
Uruguay beat Italy 1-0 in Rome thanks to a goal from Malaga striker Sebastian Fernandez.