Havlat snapped a 15-game goal drought, Joe Pavelski scored just his second goal in 19 games and added a late assist, and James Sheppard wrapped it up with his first goal of the season with 9:56 to play in San Jose's final stop on a five-game trip.
Emerson Etem scored his second career goal and Francois Beauchemin also scored for the Ducks, who wrapped up a string of five home games in eight days with their first three-game skid of the season.
Corey Perry scored for Anaheim with 1:40 to play, but Dan Boyle scored on an empty net with 28 seconds left.
There's not much to say. We played like [garbage]. I think every guy in the room should be completely embarrassed about how they played tonight. Every single person. To start a road trip, one of the biggest road trips and have a division rival chasing you down and have a ton on the line, it's ridiculous how we played tonight.
— Anaheim forward Andrew Cogliano after the Ducks' 7-2 loss to the Flames on Wednesday