The alert Villa struck the winner after 63 minutes when he fired the ball into the net off the underside of the bar after his first effort was blocked by excellent goalkeeper Eduardo, having been set up by Xavi's clever back-heel in the area.
Portugal right back Ricardo Costa was sent off in the 90th after a clash with Joan Capdevila on the edge of the area.
In Image: Spain's David Villa celebrates after scoring the opening goal
Text: Reuters
Images: AP