The Canucks found themselves down 4-3 less than 2 minutes into the final period after Niklas Kronwall unleashed a shot that eluded Roberto Luongo for a 4-3 Detroit lead.
But the Canucks stormed back with the three late goals to notch their sixth straight win. Malhotra ended with two goals and an assist while Mikael Samuelsson and Daniel Sedin also scored for Vancouver.
Luongo ended with 24 saves on 28 shots.
Kronwall scored twice for Detroit, which also got goals from Jonathan Ericsson and Dan Cleary in the setback, snapping a three-game win streak.
Jimmy Howard was victimized for all six goals on 34 shots for the Wings.