After being shut out by the Flames 2-0 on Nov. 26, the Sharks won the final three of a six-game homestand before extending their season-high winning streak to four in a row in Calgary. They'll conclude their two-game road trip Sunday against the Edmonton Oilers.
"I don't know if we've found a groove, but we're finding a way to win," Marleau said. "We're not winning ideally, being down one or two goals isn't always fun, but we've been battling back and winning, so it's good to see."
The Flames had won four straight starting with their victory in San Jose before losing to the Sharks on home ice on Marleau's winner.
"I felt that we played a real good game, but on their goals, we made some major mistakes, and they're a team that they're so talented that they were very opportunistic and they got the game from us," Calgary coach Bob Hartley said. "Only the final result matters.
"I thought that we played a decent game, but the major mistakes that we made on their goals kind of makes it tough to say that once you analyze the full 60 minutes."
Logan Couture's centering pass from behind the net rode up the stick of Flames defenseman Mark Giordano before popping over the net. Parked in front, Marleau batted the puck out of midair by Flames goaltender Karri Ramo to put the Sharks up 3-2 at 9:18.
"We were able to get our forecheck finally going in the third there," Marleau said. "Tommy Wingels and Couture both got in there, and I kind of juggled it in front and I was able to bat it in.
"I saw it fluttering up in the air and it hit my arm, and I was able to get a piece of it."
Each team had plenty of chances in the third period before Marleau scored his seventh goal.
With Brenden Dillon in the penalty box for interference, Johnny Gaudreau found himself parked alone in front of Niemi, but he couldn't slip a shot by the San Jose goalie at 3:41 of the third. Three minutes later, Wingels parked himself in front of Ramo and took a pass from Marleau below the goal line, but he couldn't beat the Calgary goaltender.
After failing to convert on a minute-long 5-on-3 man advantage late, a delayed penalty to Sharks defenseman Justin Braun in the final two minutes of the game sparked a couple of chances for the Flames but no tying goal. It didn't come with Braun in the box either.
With Ramo on the bench for the extra attacker, Niemi gloved Dennis Wideman's slap shot with 1:11 remaining, and with 1:01 on the clock, the San Jose goalie trapped Sean Monahan's centering pass with his blocker. Niemi denied Monahan on his attempt from the slot with 42 seconds remaining.
"In a couple situations, we couldn't get the puck out so they got a few chances there," Niemi said. "Lots of D-men who can really shoot the puck and they do a really good job at the net screening, so it was a tough minute but luckily we were able to kill it off.
"You're not really thinking systems any more at that point, you just want to be able to see the puck because there is such a big scrum."
The Flames couldn't beat Niemi with their first 10 shots to open game. Giordano did with Calgary's 11th though.
With 2:28 remaining in the first, David Jones scooped up the puck along the boards and found the Flames defenseman charging over the blue line. Giordano stepped into the pass with a slap shot that beat Niemi between the legs for his seventh goal and a 1-0 Calgary lead.
Entering the game, Flames defensemen had combined for 81 points, most in the NHL.
San Jose pressed to find the equalizer before the period let out. Couture had a shot go off the crossbar with a minute left, and Ramo made consecutive saves off Brent Burns, John Scott and Joe Pavelski in a span of seven seconds before the period ended to preserve Calgary's lead.
Despite the late push, coach Todd McLellan and the Sharks weren't satisfied with their opening 20 minutes.
"You could say not pleased," Couture said. "Todd will probably say something different. If you were close to the room, you could probably hear him screaming. We knew in this room it was a pretty pathetic period by this group. It was nice to see us rebound and come out strong in the second."
It took two shots and 2:34 for the Sharks to turn a one-goal deficit into a one-goal lead in the second period.
Braun forced a turnover before picking up the loose puck in the slot and backhanding his first goal of the season over Ramo's blocker to tie the game 1-1 at 0:33. It was Braun's first goal in 45 regular-season games dating to last season.
Couture put the Sharks ahead on San Jose's next shot. Off Scott's dump-in, Flames defenseman Raphael Diaz couldn't handle the puck off the end boards, allowing Couture to corral the puck and lift his 11th over Ramo's glove.
"It's kind of a repeat from Boston last game," Couture said. "We did the same thing. Boom, boom, we're back in the game. It was a good start to get that goal. [Braun] made a great play pinching up and a great shot, and John Scott made a good play on the forecheck, and I was able to score one to get ourselves back in the game."
Scott's assist was his first since Dec. 16, 2011, a span of 120 games.
With 2:11 remaining in the period, Gaudreau pulled Calgary even at 2-2. Gaudreau redirected a pass from Jiri Hudler, and after being denied on his initial attempt, he tapped the rebound by Niemi's outstretched pad.
Matt Stajan, who missed the previous 16 games because of a knee injury, earned an assist on the Gaudreau goal.
Ramo made 27 saves in the loss, which snapped his personal six-game winning streak.