Ignacio Mieres won the battle of the boot as Exeter inflicted an eighth straight Premiership defeat on Wasps.
Nicky Robinson kicked Wasps into an early lead but Mieres replied with three of his own as Exeter led 9-3 at the end of a scrappy first half.
Mieres and Robinson then exchanged penalties before the Argentine's fifth kick put the Chiefs nine points clear.
Robinson struck twice more to to set up a grandstand finish but Exeter held on to climb to fourth.
Wasps dominated possession for long periods of the match but another defeat, coupled with Newcastle's win over London Irish, means they are now only six points above the bottom-of-the-table Falcons.
Try-scoring opportunities were at a premium in the wet conditions, but that will matter little to Exeter given that their victory left them very much in the hunt for a Heineken Cup place.
Robinson kicked Wasps ahead when the Chiefs were caught offside, but then missed a straightforward chance to double their lead.
Mieres drew the visitors level from their first real attack and added two more penalties before the break, including one from halfway.
He added another from long range against the wind early in the second half and, although Robinson cut Wasps' arrears, Mieres punished the hosts again when Richard Birkett was penalised for not rolling away from a tackle.
Two more Robinson penalties, including a simple kick after Exeter were caught offside near their own line following a burst by Billy Vunipola, reduced the gap to three points with 12 minutes to play.
But although Wasps pressed, the closest they came was when Paul Emerick was tackled into touch.
Wasps director of rugby Dai Young:
"I've got to be careful with what I say otherwise I'll be dragged over the coals. There must have been only two people in the whole stadium that felt that it was a penalty to them. I thought it was a very poor decision and that's lost us the game in the end.
"I'm not saying we were dominant for 80 minutes because we weren't but we did enough in the second half to win the game.
"We were given two penalties but then we were penalised for trying to play on for two or three phases, then it was advantage over when it clearly wasn't.
"We've been told they don't want us to just chuck the ball away and take the penalty - they want us to be positive and try to play, which we did. In such a tight game, we had two kickable penalties taken away from us."
Exeter Chiefs head coach Rob Baxter told BBC Radio Devon:
"The disappointing thing for me is that when we got that full score ahead, we didn't really push on and finish things off.
"We've come through with a victory at a tough place to win.
"It wasn't the prettiest of games for anybody that was watching, but it was enthralling."
Wasps: Southwell; Prydie, Daly, Waldouck, Haughton; Robinson, Berry; Taulafo, Lindsay, Broster; O'Donoghue, Wentzel; Birkett, Poff, Vunipola.
Replacements: Simpson for Berry (20), Emerick for Haughton (23), McIntyre for Broster (41), Payne for Taulafo (55), Webber for Lindsay (55), Launchbury for O'Donoghue (55), Jones for Poff (74).
Exeter: Dollman; Camacho, Sestaret, Shoemark, Jess; Mieres, Thomas; Tui, Clark, Mitchell; Hayes, Muldowney; Johnson, Scaysbrook, Baxter.
Replacements: Andress for Mitchell (61), Whitehead for Clark (69), Phillips for Muldowney (71), Barrett for Thomas (74), Budgen for Tui (79).
Referee: Dave Pearson (RFU).