A Villa side looking to move up to third on the table always promised to pose a tricky test for United and so it proved in an open encounter.
The visitors appeared to be in the ascendancy after Bertrand Traore's 58th-minute effort cancelled out Anthony Martial's first-half opener.
However, United's lead was re-established through Fernandes's ninth Premier League penalty since the start of February 2020 – his tally in that time is two more than any other player.
It was enough for United to further boost its title hopes, with only goal difference keeping Liverpool top of the pile.
Goalkeepers Emiliano Martinez and David de Gea were each forced into important early saves from Martial and John McGinn respectively, but the better opportunities came United's way, with Fred and Paul Pogba spurning presentable chances.
Fernandes bent wide but United's first goal of the new year came from Martial, who rounded off a neat move with a stooping header from Aaron Wan-Bissaka's right-wing cross.
Only the tremendous reflexes of De Gea prevented Ollie Watkins from levelling the contest, the Spain international producing heroics to turn Watkins's header from Jack Grealish over the crossbar.
Anwar El Ghazi then lashed a volley narrowly wide of the near post before Villa got the goal their second-half efforts deserved, a quick free-kick ending with Grealish's low cross finding Traore at the far post to tuck home.
But parity lasted little under four minutes as Fernandes powered his penalty into the bottom-left corner after Douglas Luiz had clipped Pogba after a throw-in.
Martial stung the palms of Martinez who, after Pogba produced an errant finish from close range, tipped a marvellous Fernandes effort onto the crossbar.
Tyrone Mings let a gilt-edged chance go begging late on, ensuring United's inability to double its lead was not punished, though it will need to be more clinical if it is to narrow the eight-goal gap between itself and Liverpool.