Andreas Weimann scored either side of the interval to give the hosts an unlikely lead but half-time substitute Hernandez scored twice and had a shot turned into his own net by Ron Vlaar to keep United clear at the top of the Premier League.
United dominated much of the opening period with Villa content to sit back and soak up the pressure and hope to hit the visitors on the counter-attack.
It looked to be paying off as Antonio Valencia and Paul Scholes both failed to test Guzan with long-range chances and the Villa defence managed to shackle the threat of Wayne Rooney and Robin van Persie for long spells.
Villa hit the front in first-half stoppage time when Christian Benteke shrugged off Chris Smalling and squared for Weimann to beat David de Gea with a perfectly hit first-time shot.
The Austrian was on target again five minutes after the restart as Stephen Ireland found Gabriel Agbonlahor in space on the left and he drilled in a low shot to give Weimann a five-yard tap-in.
But United responded well and Hernandez timed his run onto a Scholes pass to perfection and managed to dig the ball out from under his feet before beating Guzan on 58.
The visitors were back on level terms five minutes later when Rafael stood up a cross to the back post which was met by Hernandez and his volley struck Vlaar to leave Guzan wrong-footed.
Guzan kept his side in it with a full-stretch save from Rooney while Weimann was denied his hat-trick by a reaction save from De Gea as the Villa man met a Barry Bannan cross with a thumping header.
But it was all United thereafter and Van Persie was twice denied by the woodwork in as many minutes, the crossbar still shaking after his thumping header from a Rooney corner when he hit it again with a delightful 25-yard curler.
The Red Devils were laying siege to the Villa goal and the hosts’ resistance was finally broken three minutes from time when Hernandez stooped to head home Van Persie’s brilliant free-kick.