The Tickford Racing star spent the first stint shadowing pole sitter Anton De Pasquale, with the two Fords separated by about a second.
Wasser then went to the undercut on lap 15 and dived into the boxes to do his only compulsory service.
De Pasquale reacted a lap later and managed to get out just before Waters. But the lead wasn’t quite enough as he waited for his tires to warm up, and Waters took the lead on Turn 2.
Once at the front, Waters was unstoppable, a well-executed second stint brought a 2.8-second victory.
“The old over and over,” said Waters of the victorious move on De Pasquale. “I knew I had to do it. I’m so pumped up. Obviously we smoked last week so it’s absolutely unreal to recover.”
Jamie Whincup actually finished second on the road, eight tenths behind Waters, but finished fifth thanks to a 15-second penalty. That was for driving too fast in the pit lane, Whincup had locked himself in the pit while trying to close the gap with Waters.
The seven-time series champion made good progress in the second stint, overtaking De Pasquale in second when the Dick Johnson Racing driver made a mistake on lap 31. When he crossed the finish line, however, a three-position drop penalty was waiting.
This left De Pasquale in second place, while Chaz Mostert rounded off the podium.
Tim Slade finished with an impressive fourth place, the best result of the Blanchard Racing Team in supercars.
That was after an imaginary battle with Whincup in the closing stages, in which Slade did enough to oust the punished # 88 by seven tenths.
Shane van Gisbergen finished sixth after an action-packed race.
Starting in sixth place, the Kiwi was relegated to eighth place on the first lap after avoiding a late braking Brodie Kostecki on the way to the apex of Turn 2.
He was lucky enough to dodge Kostecki a second time later on that first lap, van Gisbergen was sitting outside Todd Hazelwood when the Brad Jones Racing driver grabbed a trunk full of Erebus Holden and was spat off the road.
On the second lap, van Gisbergen got inside Kostecki in the last corner before attempting to run over his rival at the exit. The two had wheel-to-wheel contact, Kostecki fired into the wall when van Gisbergen took sixth place.
Three laps later, van Gisbergen made another aggressive move in the last corner to snap into fifth place ahead of Will Davison, seven laps later Mostert was his next victim in fourth. At this point, however, he had already been given a 15-second time penalty for the Kostecki contact, which meant that early progress was in vain.
As usual, van Gisbergen ran for a long time, stopped on lap 21 and came way back in 19th place. Then he stormed his way back to sixth place over the second stint.
Finishing one place behind Whincup means his lead in the series has decreased slightly to 239 points.
Scott Pye finished seventh ahead of James Courtney, Hazelwood and Will Brown.
Davison was pushed back to 11th thanks to a slow stop and a front left tire that couldn’t come off the car.
Meanwhile, Kostecki finished 22nd after fighting his way through a steering damage from the van Gisbergen contact and his own 15-second penalty for the Hazelwood incident.
The Townsville SuperSprint continues tomorrow with two more races.