Jake Virtanen also scored twice for the Hitmen (26-8-5), who extended their win streak to four games, while Alex Roach, Brady Brassart and Travis Sanheim had a goal and an assist apiece.
Scott Cooke, Bryson Gore and Torrin White scored for the Warriors (12-24-6).
Mack Shields made 28 saves for Calgary. Moose Jaw's Justin Paulic allowed six goals on 34 shots before giving way to Brody Willms, who stopped 4-of-5 shots in 13 minutes of relief.
The game was chippy right from the beginning and a combined 191 minutes in penalties were handed out to the two clubs. In total, 12 fighting majors were given, as well as nine miscoducts, including a game misconduct to Calgary's Joe Mahone for head butting 3:31 into the first period.
The Hitmen went 1 for 8 on the power play while the Warriors scored once on six chances with the man advantage.
BLADES 5 HURRICANES 2
SASKATOON — Troy Trombley stopped 43 shots, including 24 in the third period, as the Blades hung on to defeat Lethbridge.
Nick Zajac and Logan Harland each scored twice for Saskatoon (12-27-4), who held a 4-0 lead after two periods of play, and Chase Clayton scored once.
Reid Duke and Jamal Watson scored for the Hurricanes (8-30-5).
Lethbridge's Corbin Boes turned away 42-of-46 shots in a losing cause.
WHEAT KINGS 4 PATS 3 (OT)
BRANDON, Man. — Richard Nejezchleb scored with four seconds remaining in extra time as the Wheat Kings narrowly escaped blowing a three-goal lead.
John Quenneville, Tyler Coulter and Jens Meilleur gave Brandon (21-16-4) a 3-0 lead after 40 minutes of play.
Colby Williams scored twice in the third period for Regina (20-18-4) and Patrick D'Amico had the other to complete the comeback and earn at least one point.
Jordan Papirny made 31 saves for the Wheat Kings while Dawson MacAuley stopped 36-of-40 shots for the Pats.
OIL KINGS 7 THUNDERBIRDS 0
EDMONTON — Tristan Jarry stopped 22 shots and Henrik Samuelsson had five assists as the Oil Kings blanked Seattle for their third win in a row.
Reid Petryk scored twice for Edmonton (26-12-1) while Mitchell Moroz had a goal and two assists.
Ashton Sautner, Luke Bertolucci, Brandon Ralph and Brett Pollock also scored for the Oil Kings.
Danny Mumaugh turned away 36-of-43 shots for Seattle (22-12-5).
BRONCOS 3 TIGERS 1
MEDICINE HAT, Alta. — Eetu Laurikainen stopped 46-of-47 shots as Swift Current downed the Tigers for its first win in three outings.
Colby Cave, Jake Debrusk and Coda Gordon supplied the offence for the Broncos (22-15-6).
Cole Sanford scored the lone goal for Medicine Hat (23-13-3), which came into the contest with back-to-back victories.
Daniel Wapple gave up three goals on 21 shots for the Tigers.
ROYALS 3 WINTERHAWKS 2
PORTLAND, Ore. — Steven Hodges scored the winner at 16:40 of the third period and Coleman Vollrath made 37 saves as Victoria handed the Winterhawks their fourth loss in a row.
The Royals (28-14-2) also got goals from Axel Blomqvist and Austin Carroll.
Dominic Turgeon and Layne Viveiros scored for Portland (25-15-4).
Jarrod Schamerhorn stopped 23-of-26 shots in net for the Winterhawks.
COUGARS 3 BLAZERS 1
PRINCE GEORGE, B.C. — Marc McNulty's power-play goal 12:08 into the second period stood up as the winner as the Cougars beat Kamloops.
Klarc Wilson and Zach Pochiro had a goal and an assist each for Prince George (16-21-5) and Todd Fiddler tacked on two assists.
Cole Ully scored for the Blazers (10-27-4), who sit last in the Western Conference.
Ty Edmonds made 19 saves for the Cougars while Taran Kozun kicked out 37-of-40 shots for Kamloops.
ROCKETS 4 GIANTS 2
KELOWNA, B.C. — Myles Bell scored twice and set up one more as the Rockets doubled up Vancouver.
Carter Rigby and Justin Kirkland also scored for Kelowna (33-4-2), which has won 17 of its last 18 contests, and Jesse Lees had two assists.
Alex Baer and Cain Franson scored for the Giants (20-15-7), who had their three-game win streak halted.
Jordon Cooke made 21 saves for the Rockets while Payton Lee turned aside 32-of-36 shots for Vancouver.
CHIEFS 3 SILVERTIPS 2 (OT)
SPOKANE, Wash. — Mike Aviani scored twice, including the winner, and added an assist as the Chiefs slipped past Everett.
Aviani scored 56 seconds into extra time for Spokane (25-13-2) while Jason Fram had a goal and an assist.
Jujhar Khaira and Carson Stadnyk scored for the Silvertips (23-13-5), who fall to fifth in the Western Conference standings one point behind the Chiefs.
Spokane's Eric Williams made 31 saves for the win as Everett's Austin Lotz kicked out 37-of-40 shots in a losing cause.