Nadir Ciftci and Stuart Armstrong put United two goals ahead before Celtic substitute Leigh Griffiths netted in the dying minutes, although the Hoops also had a goal from Stefan Scepovic wrongly disallowed for offside.
The visitors were punished for some sloppy play after just five minutes when Stefan Johansen’s pass for Emilio Izaguirre was intercepted and Armstrong’s pass was deflected past Efe Ambrose, who swiped at fresh air and Ciftci took advantage to hold off the Celtic defender before shooting into the far corner.
Ciftci turned provider on 65 minutes when he again used his strength to get past Izaguirre before hanging his cross up at the back post for the unmarked Armstrong to squeeze his header past Craig Gordon.
Celtic pushed their hosts all the way, though, and when Gordon’s clearance broke off Kris Commons, Scepovic played a quick pass to Griffiths and he slotted the ball under Rado Cierzniak on 87 minutes, but United held on to move just four points behind the Bhoys in second place in the table.
After losing the early goal Celtic responded with some heavy pressure and James Forrest should have made more of a great opportunity after Izaguirre and Tony Stokes combined, but the winger shot straight at Cierzniak.
Johansen then exchanged passes with John Guidetti to open up the United defence and the midfielder’s early strike forced Cierzniak into an impressive save.
But United almost scored again when Conor Townsend was denied by Gordon as the Celtic ‘keeper dived at full-stretch to keep out his shot.
Celtic then had strong claims for a penalty waved away by referee Steven McLean when Sean Dillon barged into Guitetti’s back inside the box.
The visitors came close again when the ball spun off Cierzniak against the woodwork and Virgil van Dijk’s follow up was scrambled off the line by a United defender.
Ciftci again got the better of Ambrose two minutes after the break when he pinched the ball off the defender at the edge of the box and forced Gordon into a save at his near post.
United survived another scare when a Stokes cross deflected off Dillon over Cierzniak but the ball spun back off the inside of the post.
Moments later Izaguirre took the ball off the toe of Blair Spittal on the penalty spot, just as the United midfielder was about to shoot with only Gordon in front of him.
With 10 minutes remaining Johansen found Izaguirre ghosting into the box, and the left-back knocked the ball square to Scepovic to slam his shot into the corner of the net, but, despite being two yards onside, the goal was flagged off.
Griffiths gave Celtic some hope shortly after that and in the opening minute of stoppage-time the striker rifled a low drive against the base of the post with Cierzniak beaten, an incident the summed up the match for the Glasgow club.