United are safely through to the last 16 of the Champions League - but the battle for top spot with fellow qualifiers Villarreal will continue into December after a fourth successive stalemate between the sides.
The Reds seemed more intent on winning than their cautious Spanish counterparts and will now hope to secure the more favourable draw they deserve by beating Celtic's conquerors Aalborg at Old Trafford on 10 December.
Sir Alex Ferguson’s line-up at El Madrigal showed five changes from the side that started Saturday’s 0-0 draw at Aston Villa. Nani and Darren Fletcher replaced Ji-sung Park and Ryan Giggs in midfield, and Anderson also came in at the expense of a striker, Carlos Tevez. At the back, Tomasz Kuszczak deputised for Edwin van der Sar and Jonny Evans was given another chance to impress alongside Rio Ferdinand, with Nemanja Vidic rested.
Eager to mark his recall, Anderson was instrumental in two early attacks that saw United utilise the left flank. First, he fired in a cross-cum-shot which Diego Lopez had to palm away from the Villarreal goal; next he played in Patrice Evra for a low cross that Wayne Rooney tapped home, only to see an official’s flag raised for offside.
Ex-Reds striker Giuseppe Rossi gave Kuszczak his first save, a simple one low to his right. The keeper's next act was to parry a swerving drive from Santi Cazorla.
Cristiano Ronaldo's resolve, having shrugged off a knock to start, was twice tested under the referee's nose in the first half. Italian official Roberto Rossetti had a word with the United winger and the defender who seemed to claw at his neck - later he showed Javi Venta the yellow card for a foul on Ronaldo, whose resulting free-kick was saved comfortably by Lopez. The next booking was for United's Patrice Evra, after he brought down Ariel Ibagaza.
Lopez had to make three more saves as the game approached half-time - one straightforward from Fletcher after Rooney chested down Nani's cross, and two athletic efforts to deny Ronaldo. The first of these was a stunning finger-tip save to push an equally excellent shot onto the crossbar; the final stop demonstrated good reactions as he saw Ronaldo's free-kick late but still managed to smuggle it wide. Sebastian Eguren saw yellow for the foul leading to the setpiece.
Villarreal were forced into a change at the break, bringing Bruno on for Marcos Senna. The substitute's first telling contribution, a left-wing cross aimed for Rossi, was decisively headed away by Evra.
Ronaldo resumed his duel with Diego Lopez when he drove in a menacing shot that bounced just before the keeper saved it. When Rooney went for the rebound and fell in the area, there were appeals from both sides – from Ronaldo for a penalty and from Villarreal’s defenders for a booking to punish what they saw as a dive. The referee made neither call but did produce a card for Ronaldo moments later, apparently for dissent after a separate incident. Fuentes joined Ronaldo in the book for a foul on Rooney; play was waved on to allow Fletcher a shot that he dragged wide.
With the game opening up around the hour mark, Anderson twice hit low shots straight at the keeper and Rooney chipped one wide – both players benefiting from Fletcher’s neat approach play. Another Rooney shot, on the turn following Carrick's penetrative pass, found a familiar fate - well saved by Lopez.
The Reds enjoyed some luck when Santi Cazorla bent a glorious cross in behind the defence and only just failed to get a connection from Rossi and his cohorts. Villarreal were then fortunate when Rooney's centre from the left, deflected off a defender, was headed out from under his own crossbar by the quick-thinking Capdevila. Villarreal's hero became the villain moments later, however, when he lunged at Ronaldo and was shown the red card to the chagrin of a cacophonic home faithful.
Despite the assault, Ronaldo remained on the field while Fletcher, Nani and Carrick were replaced during the last ten by Gibson, Park and Tevez as United secured safe progress.
Villarreal: Lopez; Venta, Rodriguez, Fuentes, Capdevila; Santi Cazorla, Senna (Bruno, 46), Eguren, Pires (Fernandez, 65); Ibagaza, Rossi (Franco, 79). Subs not used: Viera, Edmilson, Cygan, Lopez. Booked: Venta, Eguren, Fuentes. Sent off: Capdevila.
United: Kuszczak; O'Shea, Evans, Ferdinand, Evra; Ronaldo, Fletcher (Gibson, 80), Anderson, Carrick (Tevez, 86), Nani (Park, 84); Rooney. Subs not used: Foster, Giggs, Vidic, Rafael. Booked: Evra, Ronaldo.