Garnet Hathaway and Andrew Mangiapane also scored for the Flames (47-21-7).
Brock Boeser responded with a power-play goal for the Canucks (32-33-10).
Calgary goalie Mike Smith turned away 27-of-28 shots and Jacob Markstrom had 28 saves for Vancouver.
The loss snapped a three-game win streak for Vancouver. The squad sits six points back of the Colorado Avalanche, who hold the final wild-card spot in the Western Conference.
The Flames were the first team in the West to clinch a playoff spot and remain at the top of the conference standings with 101 points.
Calgary opened the scoring 9:44 into the first period after Derek Ryan sliced a pass to Giordano from down low.
The defenceman collected the puck on his tape and fired a snap shot into the top left corner of the net over a diving Markstrom.
The goal marked Giordano’s 70th point of the season and extended his point streak to seven games. He’s notched two goals and eight assists since March 10.
The 35-year-old added to his total with a pair of helpers and now has 72 points in 73 games.
With less than three minutes to go in the second period, Giordano got the puck to Hathaway in the slot.
The right-winger got off a back-handed shot and the puck hit Markstrom’s right pad before dribbling into the net.
Giordano helped out once again midway through the third, flipping a cross-ice pass to Mangiapane high in the slot. The left-winger sent a slap shot flying past Markstrom into the Vancouver net.
The Canucks were able to get on the board early in the third period after Calgary’s Johnny Gaudreau was called for tripping, giving Vancouver a 4-on-3 power play.
Boeser capitalized on the advantage 38 seconds into the frame, firing a wrist shot under Smith’s glove.
The right-winger now has four goals and six assists in his last nine games.
A small fracas erupted with less than two minutes to go in the game after Canucks defenceman Alex Edler hit Smith along the end boards, sending the netminder — and his helmet — flying.
Fists flew briefly before Edler was handed a two-minute penalty for goaltender interference.
The Canucks will be back in action on Sunday, hosting the Columbus Blue Jackets.
The Flames will battle the L.A. Kings in Calgary on Monday.
NOTES: Calgary was without centre Sam Bennett, who’s recovering from an upper-body injury. … Vancouver’s star rookie Elias Pettersson had an assist on Boeser’s goal, extending his point streak to five games. … Saturday’s win marks the Calgary Flames 1,700th franchise victory.