The victory keeps United hot on the heels of Chelsea for a top-four finish in the Premier League just three points behind the Blues in fifth place, which could be good enough for Champions League football next season.
Outgoing English champions City are banned from European football for the next two years pending an appeal to the Court of Arbitration for Sport, and on this display seem to already be concentrating on completing a treble of cup competitions this season.
A seventh league defeat of the campaign for City means Liverpool are now just a maximum of two wins away from claiming a first league title in 30 years.
City dominated possession early on, but lacked their normal potency without the injured Kevin De Bruyne as United created the better chances on the counter-attack.
The January signing of Bruno Fernandes has been key to United’s 10-game unbeaten run and the Portuguese’s first impact in the game put Daniel James through, but the Welshman fired too close to Ederson.
Martial also allowed the Brazilian to make a comfortable save with a clear sight of goal after outmuscling Fernandinho.
City’s defensive deficiencies have allowed Liverpool to streak 25 points clear. But it was an uncharacteristic error from Ederson that gifted United the lead.
Fernandes was the creator again with a scooped free-kick to pick out the Frenchman and his shot squeezed under Ederson’s right hand and crept in at the near post.
VAR overlooks penalty shout
Confidence was now flowing through United as Fernandes headed wide at the end of an excellent team move before Fred was controversially booked for diving when he appeared to have been taken down inside the area by Nicolas Otamendi.
United fans were frustrated VAR did not intervene on that occasion and when it did early in the second half, City were nearly the beneficiaries.
Sergio Aguero was flagged offside long before he fired past David de Gea, but the Argentine was only fractionally off when the move was reviewed.
Moments later Ederson escaped gifting another goal as a routine backpass rolled under his foot and the former Benfica stopper needed to produce a last-ditch tackle on Martial to deny United breathing space.
City then slowly started to up the pressure. Phil Foden’s long-range drive forced De Gea into a fingertip save.
Raheem Sterling then could not stretch to get a good connection on Riyad Mahrez’s cross and De Gea got down well to deny Gabriel Jesus.
However, where United may have buckled earlier in the season, Ole Gunnar Solskjaer’s men held firm to record a third win in four meetings with City this season.
McTominay sealed the three points deep into stoppage time when he strode onto a wayward throw by Ederson to steer the ball into an unguarded net.
In another English Premier League encounter, Chelsea overpowered a non-confident Everton.
Chelsea thrashed Everton, who spent their energy and time kicking the ball around that finding the back of the net, four unreplied goals.