Swans ruckman Brodie Grundy continued his strong form on Sunday at Marvel Stadium in the 14.8 (92) to 13.9 (87) win.
Grundy racked up 46 hitouts and set up Errol Gulden for the match-winning goal.
The Swans are 10th on the ladder, three games and percentage outside the top eight.
Saints first-gamer Max Heath, who kicked a goal, might not play his second match immediately. He will come under match review scrutiny for an attempted spoil that collected Tom McCartin high and forced him out of the game.
Will Hayward and Jake Lloyd kicked three goals apiece for the Swans - the best haul of Lloyd's 265-game career - while Saints tagger Marcus Windhager had a game-high 36 disposals.
A three-goal burst in four minutes sent Sydney out to a 20-point lead in the first term, before the Saints rallied with the last two goals of the quarter.
Tempers frayed in the second quarter when Grundy had a set shot at goal from 50m out and tried to baulk around Heath.
The first-gamer caught Grundy in a tackle, which sparked a melee.
A few minutes later, after Nasiah Wanganeen-Milera had brilliantly set up a goal for Cooper Sharman, the Saints speedster also tried to play on from a mark.
He dodged one player, but Angus Sheldrick wrapped him up for a holding-the-ball free.
Two goals late in the quarter to Max Hall meant the Saints led by 10 points at the main break, and they extended that to 19 in the third term.
Heath then clumsily caught McCartin in a marking contest at the start of the last quarter, and the Swans backman was taken out of the game as a precaution.
McCartin has a concussion history and he had blood on his face as he left the field.
With Aaron Francis already subbed out of the game, Sydney were down to three men on the bench.
Trailing by 13 points at the last change, the Swans kicked three of the next four goals and took the lead.
Rowan Marshall tied the scores after he was paid a 50m penalty that brought him to the top of the goal square.
After a rushed behind put the Saints in front, Gulden roved a hitout from Grundy superbly and his goal was the final score of the game.