Bottom side Connacht recorded back-to-back wins in the Celtic League for the first time since November 2004 as Mark McHugh kicked them to victory.
Connacht (6) 15
Pens: McHugh 5
Dragons (10) 10
The fly-half landed five penalties from six attempts to help his province to a third win in four league outings.
Dragons lock Luke Charteris scored the only try of the match.
In the race for the Heineken Cup qualification play-off spot, Connacht are four points behind the ninth-placed Dragons, who have two games in hand.
McHugh opened the scoring with an eighth-minute penalty from 38 metres out.
The Dragons, looking for their first win in eight trips across the Irish Sea, replied with a try from 6ft 9in Charteris.
It was the first score of the campaign for the league's tallest player.
Paul Warwick, playing at full-back, tried to work the ball out of the Connacht 22 but was tap-tackled by Ian Gough, allowing Charteris to gobble up possession and make the corner.
Fly-half Craig Warlow converted and also kicked a 33rd-minute penalty - cancelling out McHugh's effort - to chalk up his 100th point in the league this season and push Paul Turner's outfit into a 10-6 lead.
With the wind behind them, Connacht wasted little time in landing penalties after 45 and 49 minutes to punish the Dragons for ruck offences.
That put Michael Bradley's men 12-10 in front - and their nerves were left jangling until McHugh's fifth successful kick nine minutes into injury time.
Connacht: Warwick, Mostyn, Mailei, Williams, Yapp, McHugh, Keane, Hogan, Fogarty, Knoop, Short, Gannon, Swift, Muldoon, Rigney.
Replacements: Merrigan, Clarke, Gallagher, Lacey, Tierney, Slemen, McPhillips.
Dragons: A. Thomas, Wyatt, Bryant, Sweeney, Brew, Warlow, Baber, Black, S. Jones, R. Thomas, Gough, Charteris, Ringer, Forster, Owen.
Replacements: Brown, Maddocks, Robinson, Sidoli, Oakley, Breeze, Ireland.
Referee: David Changleng (Scotland).