McTominay's eighth minute header was all Ralf Rangnick's side needed but it was certainly not for the purist as Villa had two goals disallowed and - at times - laid siege to David de Gea's goal.
But the result is the most important thing even if it is only the FA Cup as United set up a tie at home to Championship side Middlesbrough having seen off our divisional rivals - the same divisional rivals we face in the league on Saturday.
Ironically, it was United's two most maligned players whom made the difference as Fred's superb curling cross picked out McTominay to nod beyond Emi Martinez and in.
Cristiano Ronaldo, Harry Maguire and Jadon Sancho were United's big-name absentees but Rangnick named a stronger than expected side as he made five changes from Monday's tie with Wolves - Diogo Dalot, Victor Lindelof, Fred, Bruno Fernandes and Marcus Rashford all returned to the starting XI.
McTominay started prominently in United's bright start as the Scot went close two minutes before his goal when he tested Martinez from distance.
McTominay managed to beat the Argentine keeper soon afterwards with his first goal of the season after a brilliant ball from Fred to put us ahead, just as he did in last year's third round fixture against Watford.
Villa's response was dangerous and not long in coming. Ollie Watkins came within inches as he narrowly evaded a whipped ball across goal, and Danny Ings then almost turned in from an Emiliano Buendia miscue in front of the Stretford End.
John McGinn showed why he would fit this United side like a glove with another impressive display in midfield. He was first to call De Gea in action with a drive from distance, before our no.1 was needed again, this time to deny Buendia, before Cavani went close at the other end after Fernandes had picked him out.
In a compelling, end-to-end contest, Watkins slammed off the bar having turned Victor Lindelof, then Jacob Ramsey's speculative 25-yarder deflected off McTominay and whistled wide.
Back came United through Fernandes - whom had a shot blocked - and the ball eventually fell to Luke Shaw. He let fly with a stunning effort from miles out but Martinez was equal to it and tipped over the bar.
McTominay had another go but volleyed into the gloves of the Villa keeper to ensure we held a slender
1-0 lead at the interval.
Then came the game's major talking point. Five minutes after the restart, Ezri Konsa headed a free-kick back across goal and McGinn stooped to nod in from close range. VAR is only used at the Premier League grounds in this competition and, after an agonising wait of over three minutes, referee Michael Oliver
chalked the goal out for a foul on Cavani and a subsequent offside infringement. Villa might've felt aggrieved but they scored an offside winner from a corner that wasn't a corner when we played them in the league so what goes around comes around.
The visitors had the ball in the net again on the hour mark but this time there could be no complaints with Watkins clearly in an offside position.
De Gea tipped wide from Matty Cash with bookings for Fred, Shaw and Dalot as a feisty cup tie - no doubt accentuated by the presence of Gerrard in the dugout - remained on a knife edge.
The lively Watkins went close with a curler and Mason Greenwood had a shot saved on the counter attack after 74 minutes as Donny van de Beek replaced Cavani to get control of the midfield.
Marcus Rashford's bad night at the office was summed up when he failed to sprint for a loose ball and instead stood still and watched as Villa cleared with our struggling no.10 replaced soon after.
Jesse Lingard and Anthony Elanga were handed late run outs with the latter's brief cameo an impressive one. There was to be no further drama despite six minutes of stoppage time as the Reds held out for a game against the Boro.
Overall team performance: 6/10
United Faithful Man of the Match: Raphael Varane