Martin Pospisil, Blake Coleman and MacKenzie Weegar also scored and Andrei Kuzmenko had two assists. At 34-34-5, the Flames are out of playoff contention.
Adrian Kempe had a goal and an assist for Los Angeles. Kings captain Anze Kopitar also scored and former Flames goalie David Rittich stopped 31 shots.
Five of the six goals came on power plays, with Calgary going three for five with the man advantage and the Kings two for four. The Kings, at 38-24-11, hold the final wild-card berth in the Western Conference with nine games remaining — five points ahead of St. Louis.
“That’s the story of an 82-game season. Really can’t get too high, can’t get too low,” Kopitar said. “Now we’ve got nine left. We’ve, obviously, got to bring it and make sure that we get into the playoffs and then we’ll go from there.”
Kadri scored Calgary’s first goal, assisted on the second and decked Kings defenseman Mikey Anderson into the boards in front of Calgary’s bench to spur the Flames to a 2-1 lead after the first period.
“When Naz is at his best, he drags people into the fight with him,” Flames coach Ryan Huska said.
The Flames outshot the Kings 20-4 over the first 30 minutes. Weegar blocked six shots in the first two periods and scored a power-play goal in the third.
“You’ve got to get dirty and sore sometimes to gut out some victories like this,” said Weegar, who finished with seven blocks.
The Flames were without forward Andrew Mangiapane for a second straight game because of an undisclosed injury. The Kings were without Phillip Danault because of an upper-body injury.
Up next for the Kings: at Winnipeg on Monday night.