Sweeny (HMO Hyundai) made a rapid start to the 20-lap race from pole position, initially heading a four-car lead group that also consisted of Hanson (Melbourne Performance Centre Audi), Dylan O'Keeffe (Garry Rogers Motorsport Peugeot) and Hyundai teammate Nathan Morcom.
It didn't take long for Sweeny and Hanson to pull away, though, the battle for the lead effectively becoming a two-horse race by quarter-distance.
While unable to shake Hanson entirely, Sweeny looked to have a small edge in that lead battle as he gradually eased out to a 2s lead.
That was until Lap 12 when kangaroos spotted near the circuit prompted a safety car.
The race went green again on Lap 15, Hanson doing his best to use the opportunity to find a way past Sweeny.
However Hanson ultimately pushed that bit too hard which led to heavy contact with the wall on the way out of The Cutting on Lap 17.
That left Sweeny clear to take a comfortable win ahead of O'Keeffe and Morcom.
"Jeez that was hard work, Jay gave me a run for it," said Sweeny.
"It was sad to see his race end like that but we were both pushing so hard.
"Fifty minutes around here in a TCR car, pushing that hard, is hard work. I'll sleep well tonight. But keen to get back tomorrow for the reversed Top 10 [race]."
GRM Peugeot pair Aaron Cameron and Ben Bargwanna finished fourth and fifth ahead of Ash Seward Motorsport Alfa driver Michael Caruso.
Will Brown (MPC Audi) Will Brown was seventh and Lachlan Mineef (Purple Sector Audi) eighth, while title contender Jordan Cox had a wild ride to ninth.
After clashing with James Moffat in qualifying, which left him at the back of the grid, Cox made an incredible start to the race which saw him sitting 10th by the time the field got to Griffins Bend on the opening lap.
However following the restart Cox found himself under fire for that 10th spot, which becomes pole for tomorrow's second race, from Luke King (Moutai Hyundai).
King managed to relegate Cox to 11th on Lap 15, before Cox made a forceful move to get the spot back on the entry to The Cutting on Lap 17. The Hyundai was left with a puncture, King crawling back to the pits, while Cox ended up in ninth thanks to Hanson's crash.
That means Cox will start tomorrow's Race 2 from the outside of the front row, with Frenchman Teddy Clairet scoring pole with a 10th place finish in his GRM Peugeot.
Josh Buchan fought back from a stalled start in his new HMO Hyundai Elantra to finish 11th, while points leader Tony D'Alberto (Wall Racing Honda) struggled for pace as he ended up 12th.
That helped his closest rival Cox close the gap to 35 points, and will also have the advantage of that second-row start tomorrow, while D'Alberto will be on the outside of the sixth row.
"It's good points, but we're really struggling," said D'Alberto. "We don't have enough speed in the car, we're a sitting duck out there. Damage limitation, we're going to fight to the end."
With 135 points still up for grabs there are nine drivers still in mathematical contention – D'Alberto, Cox, Brown, Buchan, Zac Soutar (Team Soutar Motorsport Honda), O'Keeffe, Hanson and Sweeny.
Race 2 kicks off at 9:25am local time tomorrow.
Watch all of the action live and free on Motorsport.tv (for viewers outside of Australian and New Zealand).