Tries from LV= Cup man of the match Phil Dowson and Jamie Elliott added to Ryan Lamb's second successive 20-point match to give Saints the four league points. But while the visitors' power took them clear in the second half, before the break the game had proved frustrating for Calum Clark's men.
While they had had plenty of possession and position the points just failed to come as the Dragons resolutely refused to roll over. From the early exchanges the hosts' defensive determination was clear, holding back a good Saints maul and forcing Ken Pisi into touch.
However the Dragons also showed dexterity with ball in hand, and Saints were somewhat fortunate when Ashley Smith fumbled in a tackle and Dan Evans had a try-scoring pass to Will Harries pulled back for going forward.
Saints had escaped, and with a penalty from the scrum they were back upfield and onto the scoreboard courtesy of Lamb's first penalty.
Samu Manoa's superb offload to Phil Dowson had created the opportunity, and the big American was at it again in the visitors' next attack with a burst through the middle. Dowson made metres down the left wing, but while Elliott dived over a couple of phases later the assistant referee's flag was up and the try was ruled out.
However a Dragons mistake from the lineout handed Saints a five-metre scrum, and yet again good defence from the hosts held the men in blue out. Elliott was once again denied, this time by Wayne Evans's sweep-up of a Lamb grubber, and the rearguard effort was rewarded when Tom Prydie pulled his team level with a 50-metre penalty.
Saints' dominance had scarcely been rewarded in the opening quarter, but three minutes after Prydie's success they were back in front. Calum Clark charged down a Smith clearance from the kick off, a Dragon fumbled, and when Saints turned on the power at the scrum Lamb had the shot from in front of the uprights, which he duly converted.
Lamb was off target with his next kick, a penalty attempt on the stroke of the break, but by then Saints were behind. The Dragons had already shown in flashes how dangerous they could be with ball in hand, and when Chavhanga came off his wing to slice through the middle referee Luke Pearce waved away Saints' protestations of midfield blocking to instead award the Zimbabwean the try.
Prydie's conversion and Lamb's subsequent miss meant that Dragons re-started 10-6 in front, but with just four minutes showing on the second half clock the visitors' pivot made it a one-point ball game with his third successful shot at the sticks. Runs from Tom May and Elliott had put Saints in the position, but it was the power at the scrum which won the penalty, shoving the Dragons off their own ball.
Having done the hard work by getting the first points of the half Saints then put themselves back under pressure by conceding a try less than a minute later. The kick off was collected solidly enough, but Lamb's ambitious chip had no chasers following it up, and Chavhanga had an unopposed stroll to the line for his second score of the day.
It was a hammer blow which needed an immediate reply, and when the visitors' pack put together two powerful mauls in quick succession they finally broke the Dragons' resistance, Dowson marking his hundredth appearance for the club with the score.
Lamb's conversion put Saints a point in front, and then with two penalties in quick succession just before the hour the visitors were a converted try ahead.
Chavhanga's try aside, Saints had had all the momentum in the second half, and as the Dragons continued to concede penalties at a rate of knots referee Pearce's patience ran out and Nathan Buck was sent to the sin bin.
It took a minute for Saints to emphasise their advantage, Lamb sending a kick to the corner for Elliott to collect on the full and finally get his try.
However with Buck warming up the Dragons struck back. Again it was that man Chavhanga who proved the thorn in the visitors' side, and although replays clearly showed that the winger had put a foot on the touchline a metre or so short the score still stood.
For the second time in the half Prydie missed the conversion, and with less than 10 minutes to play Saints still had a seven point cushion. Nevertheless a two-score margin was far more preferable, and when Lamb slotted a drop goal Saints had exactly that and the win that took them to the top of Pool 4.
5mins SAINTS Miss pen Lamb
13mins SAINTS Pen Lamb 0-3
22mins DRAGONS Pen Prydie 3-3
25mins SAINTS Pen Lamb 3-6
34mins DRAGONS Try Chavhanga Con Prydie 10-6
40mins SAINTS Miss pen Lamb
HALF-TIME DRAGONS 10 SAINTS 6
44mins SAINTS Pen Lamb 10-9
44mins DRAGONS Try Chavhanga 15-9
49mins SAINTS Try Dowson Con Lamb 15-16
56mins SAINTS Pen Lamb 15-19
59mins SAINTS Pen Lamb 15-22
61mins DRAGONS Yellow card Buck
62mins SAINTS Try Elliott 15-27
70mins DRAGONS Try Chavhanga 20-27
74mins SAINTS DG Lamb 20-30
FULL-TIME DRAGONS 20 SAINTS 30