Alex Laferriere and Pierre-Luc Dubois also scored, Cam Talbot made 29 saves, and the Kings avoided their first three-game losing streak on home ice.
Blake Coleman had two goals and Rasmus Andersson also scored for the Flames, who had won three straight and picked up a point in five straight. Jacob Markstrom allowed four goals on 33 shots.
Los Angeles took charge in the second period on goals by Laferriere and Moore, which characterized a return to aggressive and direct offense after a poor run with four losses in six games.
Laferriere put in Drew Doughty’s pass off his skate for a 3-2 lead at 6:28 of the second, and Moore beat Markstrom over the goalie’s right shoulder midway through the period for a two-goal lead.
Those scores came after Coleman tied it up short-handed off the rush. He had poke checked the puck away from defenseman Jordan Spence in the neutral zone to set up his 11th goal.
Talbot was barreled over by Coleman during the play, had his helmet knocked off and neck torqued back, but stayed on the game after he was examined on the ice by a trainer.
Coleman had a power-play goal midway through the third period to cut Calgary’s deficit to 4-3, firing in the rebound after Talbot stopped Adam Ruzicka’s try.
Coleman is the first Flames player to have power-play and short-handed goals in a game since Noah Hanifin did it against Arizona on Nov. 25, 2018
Byfield beat Hanifin in a foot race to add an empty-netter with one minute remaining.
Up next for the Kings: Host the San Jose Sharks on Wednesday night.