Red Wings coach Jeff Blashill said "Our guys understand the business of this. We put ourselves in this spot, so we can't feel sorry for ourselves."
Monahan had a goal and an assist, and Noah Hanifin had two assists for the Flames, who won for the fifth time in eight games. David Rittich made 27 saves.
Larkin scored twice, and Jonathan Bernier made 27 saves for Detroit, which lost for the 16th time in 19 games (3-15-1).
Johnny Gaudreau gave the Flames a 1-0 lead at 6:46 of the first period with a slap shot from the left face-off dot.
Monahan made it 2-0 with his 19th goal of the season, knocking home a rebound at 8:03.
Larkin pulled Detroit within 2-1 at 15:48, taking a pass from Brendan Perlini and skating past Flames defenseman Michael Stone to score his 16th goal.
The Flames increased the lead to 3-1 at 19:49 of the second period when Hanifin's shot deflected off Mangiapane's shin pad.
"That was a good possession by our whole group and then a good shot by [Hanifin]," Mangiapane said. "I was just going to the net to try to screen [Bernier] and it hit me. Crazy goal, but we'll take it."
The two-goal margin was a bad sign for a Red Wings team with 10 goals at 5v5 in its past 12 games.
"I thought we were much better in the second period, so that's a tough goal," Blashill said. "We struggle to score at 5-on-5 and on the power play, and that's another goal we have to dig back in the third period."
Larkin cut the lead to 3-2 at 18:00 of the third period after the Red Wings pulled Bernier for an extra attacker.
Mangiapane scored into an empty net at 19:48 for the 4-2 final.
"After they got the goal, our next line went out there and took back the momentum," Mangiapane said. "That helped us finish it off."