Huw Taylor and Jarryd Sage grabbed tries as Bernard Jackman’s men showed plenty of spirit and rallied in the second period in Belfast.
The home side – packed full of international talent – had opened up a big first half lead and wrapped up the bonus point after the break.
But Dragons really turned up the heat in the final quarter and were pushing for a late bonus point before a breakaway score wrapped up the win for the Ulstermen.
New fly half Jason Tovey got the game underway under chilly Belfast skies and immediately kicked in behind to try and pin Ulster back after powerful runs from Adam Warren and Richard Hibbard.
However, a penalty for offside saw Ulster take the lead as McPhillips knocked over a simple kick.
A patient Ulster attack was then rewarded after Speight charged into the 22.
The ball was spun wide and, after Tovey went for the intercept, the ball bounced up into the hands of McPhillips who sent Australian wing Speight over.
Dragons looked to respond and went quickly from a free kick at the scrum, with Rhodri Williams exploiting a half gap but just failing to find the support runner.
They were rewarded, though, on 16 minutes when Nic Cudd won a penalty and Tovey slotted the kick – to move to fifth in the all-time league points scorers.
Tovey was then the try saver as his brilliant ankle tap tackle denied Lowry as he looked to break clear.
Cudd continued to force mistakes at the breakdown as he won another penalty to give Dragons the chance to put real width on the ball.
But a second home try arrived after a slicing run from Will Addison, who broke several tackles before offloading to Shanahan to dive in.
Dragons hit back in style as centre duo Sage and Warren combined to blast open a hole in midfield before Williams looked to dance his way past men.
More powerful running saw Warren and Number Eight Harri Keddie rattle up to the line and Taylor chose the perfect moment to pick up and crash over.
Further pressure from the visitors was rewarded when Tovey added his second penalty of the night.
But the Dragons were dealt a body-blow on the stroke or half-time as Lowry glided past men to fly over the line.
Dragons put down an early marker that they were still up for the battle as the pack won a big scrum penalty at the start of the second half.
Ulster did grab the try bonus on 49 minutes, Speight breaking a tackle to tear down the left before the ball was switched to the opposite flank for McCloskey to go over.
Dragons, though, continued to battle and press for every ball and repeatedly disrupted the home lineout and set piece.
They started to win the territorial battle and Taine Basham had a try ruled out for a knock-on before a delayed pass from Tovey sent Sage over.
Suddenly the home side were back in a game and Jordan William had Ulster hearts racing as he straightened a run and burst over halfway before being dragged down by Peter Nelson.
Dragons kicked to the corner but Ulster disrupted lineout ball before the visitors looked to use width but were crowded out.
And the home side ensured Dragons would leave empty-handed when Kieran Treadwell broke away and fed McCloskey for his second of the night.
08m McPhillips p 3-0
12m Speight t McPhillips c 10-0
16m Tovey p 10-3
23m Shanahan t McPhillips c 17-3
31m Taylor t Tovey c 17-10
38m Tovey p 17-13
39m Lowry t McPhillips c 24-13
49m McCloskey t 29-13
67m Sage t 29-18
78m McCloskey t McPhillips c 36-18
Lowry (Nelson 58); Robert Baloucoune, Will Addison, Stuart McCloskey, Henry Speight, Johnny McPhillips, Dave Shanahan (Stewart 64); Eric O'Sullivan, Rory Best (Herring 51), Marty Moore (O’Toole 58), Kieran Treadwell, Iain Henderson (O'Connor 59), Sean Reidy, Jordi Murphy, Marcell Coetzee (Jones 73)
Herring, Andy Warwick, Tom O'Toole, Alan O'Connor, Greg Jones, Jonny Stewart, Angus Kernohan, Peter Nelson
Referee: Marius Mitrea (Ita)