Ulster 24 Dragons 17: Ulster returned to the top of the Celtic League after a dominant first half set them up for their 11th win of the campaign.
David Humphreys scored 14 of Ulster's points in a devastating opening 40 minutes, but the home side, with the conditions in their favour, failed to trouble the scoreboard in the second half.
The Dragons grabbed a bonus point with a late Hal Luscombe try, superbly converted by Craig Warlow despite having spent 20 minutes of the second period reduced to 14 men.
Ulster failed to take the bonus point, and now have three weeks before their next game away at Glasgow.
Munster could have overhauled them with a win in Llanelli but that match was postponed due to the Stradey Park pitch being waterlogged.
Playing with the swirling wind, Dragons took the lead after seven minutes when Bryn Cunningham attempted to run the ball out of Ulster's 22. Warlow converted the subsequent penalty as Ulster infringed at the ruck.
However, their lead was shortlived as, three minutes later, with Ulster playing all the rugby, the impressive Isaac Boss turned his opposite number Gareth Baber over on the Dragons' line after a visiting scrum.
The ball was recycled and a Humphreys skip pass put Cunningham in at the right corner. Humphreys added a superb conversion and Ulster had the lead. The home side then added seven more points, five minutes later, after kicking a penalty for the corner.
From the subsequent take and drive, Humphreys put Jonny Bell through a gap and the centre found Tommy Bowe on his shoulder who ran in under the posts. Humphreys added the extras and Ulster led 14-3.
Perhaps being so far ahead so soon undid Ulster's concentration for they almost immediately conceded a soft score to the visitors which came about from no-one collecting an Aled Thomas bomb into Ulster's 22.
Humphreys was charged down and Dragons recycled to allow hooker Steve Jones to sprint in at the left corner which Warlow impressively converted to bring the Dragons to within four points of the home side.
But Ulster were not finished and spotting space in behind Dragons' rush defence, just outside their 22, Humphreys chipped and collected before sliding over the line with two defenders in his wake. The points were added and Ulster had daylight again t 21-10.
This lead was further extended a minute before the break when a Steve Jones block on Cunningham as he chased an up and under allowed Humphreys to thump over a penalty to make it 24-10 at the turnaround.
Dragons' problems continued as Ulster turned up the heat at the start of the second half with the first quarter practically all being played deep in Dragons' territory.
The visitors cracked under the pressure and though their defence repelled all Ulster efforts, Gareth Baber was sent to the bin, with only three minutes gone, after Neil Best nearly made the line.
Matt McCullough and then Roger Wilson were held up over the line, the latter resulting in the 53rd minute binning of skipper Jason Forster, as Ulster pummelled the Dragons line. Down to 14 men - Baber returned as Forster made way - the visitors, frustratingly for Ulster, refused to concede.
Uncharacteristic errors crept into Humphreys' game - he put a 60th minute penalty into the dead ball zone as Ulster tried to impose some pattern on proceedings - and Rory Best was hauled off after two consecutive lineout turnovers.
A rash of substitutions also did not help matters - the Dragons emptying their bench - as mistakes became commonplace. However, out of nowhere in the last minute of normal time, Dragons found a chink of light and Ceri Sweeney put Luscombe clear.
Warlow again added the difficult conversion and Dragons had grabbed a bonus point.