The midfielder took his tally for United this season to six goals as he scored in either half, ensuring the hosts picked up a much-needed three points despite Bruno Fernandes' early missed penalty.
Cole Palmer had equalised for the Blues just before the break, but McTominay headed home his second with 20 minutes remaining as United moved to within just three points of the top four, for all the apparent problems both on and off the pitch. Chelsea remain tenth, any European ambitions looking a long way off.
After a build-up dominated by talk of dressing room unrest, Ten Hag made a big statement by dropping Marcus Rashford and Anthony Martial to the bench, while Reece James was only among the substitutes himself on his return from suspension for Chelsea.
The home side, keen to respond after their dismal defeat to Newcastle, made a flying start to the match. Rasmus Hojlund and McTominay both had early efforts, before VAR presented United with a huge opportunity to open the scoring.
Having been sent to the pitchside monitor, the referee deemed that Enzo Fernandez had fouled Antony, setting the stage for Fernandes with a spot-kick. He strolled up to the ball, but Robert Sanchez held his nerve and parried out the tame penalty.
The chances continued to flow, mainly at one end of the pitch but Chelsea did have opportunities too. Mykhailo Mudryk burst through the defence and sent an effort against the woodwork as he tried to beat Andre Onana at his near post.
United got the goal their performance deserved with just under 20 minutes on the clock, as Harry Maguire's blocked effort fell for McTominay, who lashed a strike into the bottom corner, with Sanchez finally beaten.
The Chelsea goalkeeper somehow denied McTominay a second, a double save as the midfielder sent two efforts straight at him from point-blank range, before Raheem Sterling and Nicolas Jackson made a mess of an opportunity as Chelsea countered seconds later.
United looked well capable of doubling their lead, but instead they were pegged back before half-time. Palmer, against the team he grew up supporting, drifted beyond the challenges and reversed a superb finish into the far corner.
Neither manager was delighted with the space on offer in the opening 45 minutes, judging by the contrast seen after the break. A far cagier encounter materialised, with little in the way of clear cut-chances in an increasingly scrappy affair.
But, as in the first-half, it was McTominay to step up and edge his side in front. Alejandro Garnacho clipped a ball to the back post, where the Scottish international shrugged off his man and powered a header beyond Sanchez. Minutes later McTominay could have made it a hat-trick, but he shanked an effort wide when clean through.
Garnacho went close to extending the lead, as Chelsea failed to mount any sustained pressure in the closing stages. Armando Broja threatened to snatch a point as the match ticked into stoppage-time, but he could only head against the woodwork from a tight angle, as United avoided what would have been a cruel late suckerpunch.