The result means Manchester City remain one point clear at the top with a game in hand on their neighbours.
Ole Gunnar Solskjaer would have been annoyed with David De Gea after the Spaniard's weak attempt to deny the Blades opening goal.
After a corner was sent into the six-yard box, instead of clearing the ball with a fierce punch, a meek De Gea was beaten in the air by Kean Bryan, who couldn't believe his luck when his header sailed into an empty net.
Solskjaer left his side unchanged after the half-time interval and would have thought a victory was imminent when Harry Maguire equalised with a sharp header after 64 minutes.
But it was Oli Burke's deflected shot off Axel Tuanzebe which decided the game, and handed the visitors their first win over the Red Devils since 1992.
Chris Wilder's side will be dreaming of a great escape as they move to within ten points of safety with plenty of games remaining in the season.
And speaking after the final whistle, Solskjaer urged his team to move on quickly from the disappointing result.
He said: "Disappointed, we couldn't get to the heights of the last few months' football we played. Very disappointing, we couldn't find a solution to their very compact block and good defence.
"Two wrong decisions, that's how it is, it's that kind of season, inconsistent and the referee missed those two.
"That little spark, that edge, we didn't have that extra creativity, imagination, the X factor we've had - it's happened, we look at it, agree it is not good enough and go again.
"We conceded a poor goal, lost the ball cheaply up the pitch, didn't get back in and tackle, didn't clear our lines and didn't get out to the ball quick enough and we were punished.
"There is no time to feel sorry for yourself because Saturday you go again, we have Arsenal, we have to forget this, learn from it and move on."