The Dragons, unbeaten at home since March, took an early lead through a converted try from fly-half and captain Shaun Connor, but his opposite number Charlie Hodgson kicked two penalties to narrow the gap to 7-6 at the break.
Connor and Hodgson exchanged further penalties after the break before scrum-half Danny Lee wriggled his way over for a try which clinched the win as replacement fly-half Adam Greendale added the conversion and a further penalty.
The Dragons started in positive fashion as they won a penalty from Sale's first possession. From the resulting line-out fly-half Connor capitalised on some poor defending to slice through and dot down under the posts for a converted try after just two minutes.
Paul Turner's side continued to be aggressive in their early defensive efforts, with lock Robert Sidoli producing a massive hit on Sharks flanker Luke Abraham, but they strayed offside to allow Hodgson to trim the gap with a penalty.
Connor missed the chance to reply with a penalty of his own after a late challenge by Sharks captain Dean Schofield as he dragged his kick wide and wing Richard Fussell spilled Connor's well-weighted chip with just one man to beat as the hosts dominated territory in the early stages.
But Sale were at least able to pick up points on their few visits to the Dragons 22 as Hodgson slotted his second penalty in the 20th minute to close the gap to a single point.
Connor kicked his second penalty to extend the Dragons lead to 10-6 shortly after the resumption but they had come bogged down in the kicking battle and, after three separate kicks had been booted out on the full by the hosts, the Sharks took advantage of good field position to force a penalty that Hodgson made no mistake with.
But that score stung the hosts into life and after a period of sustained pressure scrum-half Lee snuck through a gap in Sale's fringe defence to cross. Replacement Adam Greendale, on for Connor, added the extras.
Sale sent on Wales scrum-half Dwayne Peel, unavailable for Saturday's Test with New Zealand as the game falls outside the designated IRB international window, but it had little effect as Bedwas product Greendale knocked over a late penalty after replacement Sisa Koyamaibole was sin-binned for clearing out Lee from an offside position to extend the lead to 20-9 and put the seal on the victory.