Please Wait . . .
United beat City for the third time this season and extended their unbeaten run to 10 matches in all competitions, though a poor performance from Ederson gave them a helping hand.
The Brazil goalkeeper failed to keep Anthony Martial's volley from a clever free-kick by Bruno Fernandes out of the bottom-right corner despite getting two hands on it.
Ederson then made a mistake while rushing in stoppage time, throwing the ball straight to substitute McTomina, who curled home from in excess of 35 yards in the 96th minute.
"I know some City fans, well, one or two, so it'll be good to rub that one in their faces as well," McTominay told Sky Sports.
"That was such a sweet moment, especially in a game where we could have done with another goal earlier on to finish the game, but credit to the boys - they were top drawer.
"We had a sticky first 15, 20 minutes, but you see how much it means to the boys to win the derby again. That's three times this year. But we have to keep going.
"It's a game we have to take confidence from, but in the coming weeks, we have to go for some proper results and keep this run going.
"It was such a beautiful feeling, in front of our fans in the dying minutes. We can't get too carried away but we've got to keep going and keep pushing for the Champions League."
McTominay was making his fifth appearance since returning from two months out with a knee injury, and he has been impressed by United's upturn in form.
"You can see with the run of games we've been on, I've been injured for two months and I was desperate to get back because I could see the progression of the team," he said.
"Just to come on and help the boys today was a pleasure. Obviously I'm fighting for my place, everybody in this team is not guaranteed a starting spot and everybody has to keep working every week.
"For me, that's one of the most important things, but we'll keep our feet on the ground and keep pushing forwards. We've won a game today but it's the next one and the next one."