Portugal captain Ronaldo has scored in each of United's five Champions League matches so far -- and netted either a late winner or equaliser in the last four in Group F.
Carrick made four changes from the 4-1 humbling at Watford on Saturday, which sealed former manager Ole Gunnar Solskjaer's fate, with Alex Telles, Donny van de Beek, Fred and Anthony Martial starting, while Bruno Fernandes and Marcus Rashford were surprisingly left on the bench.
There was a lengthy delay to kick off due a communication issue for the match officials and there were audible boos from the crowd as the visiting players took a knee.
It was a fairly even first half with neither side creating clear-cut chances before United goalkeeper David de Gea produced a stunning save as he clawed Manu Trigueros' effort over the bar on 59 minutes.
With Villarreal starting to take control in the match, Carrick sent on Fernandes and Rashford on 66 minutes and the substitutions produced a complete change in momentum as United began to grow in the game.
Having come close to scoring earlier, Sancho finally did score his first for United as he rifled in a shot after a counterattack involved Rashford and Fernandes.
"It's not been an easy couple of days for anyone at the club and that result almost feels like it's for Ole," Carrick said after the match. "We had a job to do and things needed to be taken care of. I was happy to do it and thankfully it all went to plan.
"When you've suffered results-wise and aren't in good form, individually and as a team, it's not easy to come out and let everything click -- we had to show some character and fight."
After shipping four or more goals three times in their last seven matches, Carrick will have been delighted with how solid United's defence looked as they claimed their first clean sheet of this Champions League campaign.
This was also United's first away win in the Champions League since they beat Paris Saint-Germain at the Parc des Princes in October 2020.