The 1988–89 Calgary Flames season was the ninth season for the Calgary Flames and 17th for the Flames franchise in the National Hockey League (NHL). They won their second consecutive Presidents' Trophy as the NHL's top regular season club and went on to win the first Stanley Cup championship in franchise history, defeating the Montreal Canadiens in the 1989 Stanley Cup Final. Al MacInnis won the Conn Smythe Trophy as the most valuable player of the playoffs.

The regular season saw the debut of Theoren Fleury, who went on to become the Flames' all-time leading scorer (since surpassed by Jarome Iginla), and Sergei Pryakhin, who became the first Soviet player allowed to play in the NHL. Four players represented the Flames at the 1989 All-Star Game: Gary Suter, Joe Nieuwendyk, Joe Mullen and Mike Vernon. Mullen received several awards following the season. He was named the winner of the Lady Byng Memorial Trophy for gentlemanly conduct, won the Emery Edge Award for having the top plus-minus in the league and was named a first team All-Star.

Co-captain Lanny McDonald scored his 1,000th point and 500th goal late in the season. He ended his Hockey Hall of Fame career by scoring a goal in the game that clinched the Stanley Cup before announcing his retirement in the summer.

Regular season The Flames' season began with a major trade. Mike Bullard finished the 1987–88 season second in team scoring at 103 points, but his disappointing performance during the playoffs left general manager Cliff Fletcher desiring a trade. Late in the summer, he dealt Bullard, and two players to the St. Louis Blues for a package of four players that was led by Doug Gilmour, who had scored 105 points two years previous.

Head Coach Terry Crisp favoured a defensively responsible system, and as a result, the Flames had given up the fewest goals in the league after two months while goaltenders Mike Vernon and Rick Wamsley were first and third in the NHL respectively in goals against average (GAA). The team maintained its defensive focus throughout the season, allowing 79 fewer goals – just under one per game less – than in 1987–88, surrendering a franchise record low total of 226.

Fletcher proclaimed in December that this Flames team was the best he had ever built. Calgary lost just four of its first 28 games, and on December 8 set a franchise record with its 13th consecutive game without a loss in a 5–3 victory over the Edmonton Oilers. The team also went unbeaten in its first 17 home games, compiling a 14–0–3 record in that time that featured victories of 11–4 over the Los Angeles Kings, 6–1 over the St. Louis Blues and 9–0 over the Hartford Whalers.

Though the Flames were established as the Smythe Division leaders, the team struggled around the Christmas break. After winning only one of five games towards the end of December, the team recalled two players from their minor league affiliate, the Salt Lake Golden Eagles. Paul Ranheim was brought up on December 27, but played only five games in Calgary. Theoren Fleury was brought up on January 1. He was leading the International Hockey League in scoring with 74 points in 40 games at the time of his recall, and immediately became a fan favourite in Calgary for his aggressive style despite his small, 5' 6" stature. Fleury scored three assists in his second career game, and his first two goals in his third, a 7–2 victory over the Edmonton Oilers.

Four players were chosen to represent the Flames at the 40th National Hockey League All-Star Game in Edmonton. Mike Vernon was the winning goaltender in the Campbell Conference's 9–5 victory, while forwards Joe Mullen and Joe Nieuwendyk, and defenceman Gary Suter also played in the game.

Co-captain Lanny McDonald, a veteran of 16 NHL seasons, reached two of the league's most important milestones late in the season. He scored a goal against Bob Essensa of the Winnipeg Jets on March 7 to score the 1,000th point of his NHL career. Two weeks later, on March 21, McDonald scored his 500th goal against Mark Fitzpatrick in a 4–1 victory over the New York Islanders in Calgary.

On the same night that McDonald scored his 500th, Joe Nieuwendyk scored his 50th goal of the season, becoming the third player in NHL history after Mike Bossy and Wayne Gretzky to reach the 50-goal mark in his first two seasons. Nieuwendyk scored his 100th career goal in just his 144th game. He reached the milestone in the third fewest games in league history, behind Mike Bossy (129 games) and Maurice Richard (134 games).

Joe Mullen also topped 50 goals for the Flames. He finished seventh in league scoring with 110 points, and broke Jimmy Carson's NHL record for most points in a season by an American-born player.

The Flames made NHL history when they successfully completed a deal with the Soviet Ice Hockey Federation that allowed 25-year-old forward Sergei Pryakhin to become the first Soviet player permitted by his native federation to play in the NHL. Pryakhin made his debut on March 31 in a game against the Winnipeg Jets.

The Flames finished the season with 54 wins, a franchise record, and became the fifth team in NHL history to win 50 games in a season after the Montreal Canadiens, Boston Bruins, Philadelphia Flyers and Edmonton Oilers. Calgary was nearly unbeatable on home ice, winning 32 of 40 games, and losing just four. They won their second consecutive Presidents' Trophy as the top regular season team in the NHL.

The Flames finished first in the League in penalty-killing percentage, with 82.93%.

Season standings

Record vs. opponents

Schedule and results

| 1 || October 6 || NY Islanders || 4 – 4 || Calgary || OT || 0–0–1 || 1

| 2 || October 8 || Calgary || 5 – 6 || Los Angeles || OT || 0–1–1 || 1

| 3 || October 10 || Detroit || 2 – 5 || Calgary || || 1–1–1 || 3

| 4 || October 14 || Edmonton || 1 – 6 || Calgary || || 2–1–1 || 5

| 5 || October 17 || Los Angeles || 4 – 11 || Calgary || || 3–1–1 || 7

| 6 || October 19 || Minnesota || 1 – 2 || Calgary || || 4–1–1 || 9

| 7 || October 22 || Calgary || 3 – 3 || Toronto || OT || 4–1–2 || 10

| 8 || October 23 || Calgary || 5 – 4 || Philadelphia || OT || 5–1–2 || 12

| 9 || October 25 || Calgary || 1 – 6 || Pittsburgh || || 5–2–2 || 12

| 10 || October 28 || Washington || 2 – 2 || Calgary || OT || 5–2–3 || 13

| 11 || October 30 || Calgary || 1 – 2 || Vancouver || || 5–3–3 || 13

| 12 || October 31 || Chicago || 3 – 6 || Calgary || || 6–3–3 || 15

| 13 || November 3 || St. Louis || 1 – 6 || Calgary || || 7–3–3 || 17

| 14 || November 5 || Buffalo || 0 – 9 || Calgary || || 8–3–3 || 19

| 15 || November 7 || Hartford || 3 – 6 || Calgary || || 9–3–3 || 21

| 16 || November 9 || Calgary || 2 – 3 || Buffalo || || 9–4–3 || 21

| 17 || November 10 || Calgary || 3 – 2 || Philadelphia || OT || 10–4–3 || 23

| 18 || November 12 || Calgary || 2 – 1 || Boston || || 11–4–3 || 25

| 19 || November 15 || Calgary || 5 – 1 || NY Islanders || || 12–4–3 || 27

| 20 || November 17 || Calgary || 5 – 3 || New Jersey || || 13–4–3 || 29

| 21 || November 19 || Calgary || 5 – 2 || Hartford || || 14–4–3 || 31

| 22 || November 23 || New Jersey || 2 – 3 || Calgary || || 15–4–3 || 33

| 23 || November 26 || Los Angeles || 1 – 4 || Calgary || || 16–4–3 || 35

| 24 || November 29 || Vancouver || 3 – 3 || Calgary || OT || 16–4–4 || 36

| 25 || December 1 || NY Rangers || 3 – 6 || Calgary || || 17–4–4 || 38

| 26 || December 2 || Calgary || 7 – 4 || Edmonton || || 18–4–4 || 40

| 27 || December 4 || Calgary || 6 – 3 || Winnipeg || || 19–4–4 || 42

| 28 || December 6 || Quebec || 2 – 3 || Calgary || || 20–4–4 || 44

| 29 || December 8 || Edmonton || 3 – 5 || Calgary || || 21–4–4 || 46

| 30 || December 10 || Calgary || 1 – 4 || Hartford || || 21–5–4 || 46

| 31 || December 12 || Calgary || 4 – 4 || Toronto || OT || 21–5–5 || 47

| 32 || December 15 || Vancouver || 0 – 2 || Calgary || || 22–5–5 || 49

| 33 || December 16 || Calgary || 5 – 3 || Vancouver || || 23–5–5 || 51

| 34 || December 20 || Calgary || 3 – 7 || Los Angeles || || 23–6–5 || 51

| 35 || December 23 || Calgary || 1 – 4 || Edmonton || || 23–7–5 || 51

| 36 || December 26 || Calgary || 3 – 2 || Vancouver || OT || 24–7–5 || 53

| 37 || December 29 || Montreal || 4 – 3 || Calgary || || 24–8–5 || 53

| 38 || December 31 || Winnipeg || 4 – 4 || Calgary || OT || 24–8–6 || 54

| 39 || January 3 || Quebec || 1 – 5 || Calgary || || 25–8–8 || 56

| 40 || January 5 || Los Angeles || 6 – 8 || Calgary || || 26–8–6 || 58

| 41 || January 7 || Edmonton || 2 – 7 || Calgary || || 27–8–6 || 60

| 42 || January 8 || Calgary || 0 – 6 || Edmonton || || 27–9–6 || 60

| 43 || January 11 || Winnipeg || 3 – 8 || Calgary || || 28–9–6 || 62

| 44 || January 14 || Minnesota || 1 – 1 || Calgary || OT || 28–9–7 || 63

| 45 || January 15 || Calgary || 2 – 3 || Buffalo || || 28–10–7 || 63

| 46 || January 17 || Calgary || 7 – 1 || Detroit || || 29–10–7 || 65

| 47 || January 19 || Calgary || 7 – 2 || Boston || || 30–10–7 || 67

| 48 || January 21 || Calgary || 3 – 4 || Quebec || || 30–11–7 || 67

| 49 || January 23 || Calgary || 3 – 1 || Montreal || || 31–11–7 || 69

| 50 || January 26 || NY Rangers || 3 – 5 || Calgary || || 32–11–7 || 71

| 51 || January 28 || Chicago || 4 – 5 || Calgary || OT || 33–11–7 || 73

| 52 || January 29 || Calgary || 4 – 4 || Vancouver || OT || 33–11–8 || 74

| 53 || January 31 || Calgary || 8 – 5 || Los Angeles || || 34–11–8 || 76

| 54 || February 2 || Detroit || 2 – 3 || Calgary || || 35–11–8 || 78

| 55 || February 4 || Vancouver || 2 – 5 || Calgary || || 36–11–8 || 80

| 56 || February 5 || Vancouver || 4 – 5 || Calgary || || 37–11–8 || 82

| 57 || February 9 || Calgary || 5 – 3 || St. Louis || || 38–11–8 || 84

| 58 || February 11 || Calgary || 2 – 1 || Washington || || 39–11–8 || 86

| 59 || February 12 || Calgary || 4 – 2 || Pittsburgh || || 40–11–8 || 88

| 60 || February 15 || Calgary || 6 – 1 || Winnipeg || || 41–11–8 || 90

| 61 || February 18 || Boston || 4 – 3 || Calgary || || 41–12–8 || 90

| 62 || February 20 || Washington || 2 – 6 || Calgary || || 42–12–8 || 92

| 63 || February 22 || Toronto || 4 – 3 || Calgary || OT || 42–13–8 || 92

| 64 || February 24 || St. Louis || 3 – 4 || Calgary || || 43–13–8 || 94

| 65 || February 26 || Calgary || 0 – 1 || Winnipeg || || 43–14–8 || 94

| 66 || February 27 || Philadelphia || 3 – 6 || Calgary || || 44–14–8 || 96

| 67 || March 2 || Montreal || 2 – 3 || Calgary || || 44–15–8 || 96

| 68 || March 7 || Winnipeg || 5 – 9 || Calgary || || 45–15–8 || 98

| 69 || March 9 || Pittsburgh || 3 – 10 || Calgary || || 46–15–8 || 100

| 70 || March 11 || Calgary || 5 – 5 || Edmonton || OT || 46–15–9 || 101

| 71 || March 13 || Calgary || 3 – 4 || NY Rangers || || 46–16–9 || 101

| 72 || March 14 || Calgary || 5 – 1 || New Jersey || || 47–16–9 || 103

| 73 || March 18 || Calgary || 9 – 3 || Los Angeles || || 48–16–9 || 105

| 74 || March 21 || NY Islanders || 1 – 4 || Calgary || || 49–16–9 || 107

| 75 || March 23 || Los Angeles || 2 – 4 || Calgary || || 50–16–9 || 109

| 76 || March 24 || Calgary || 3 – 4 || Winnipeg || OT || 50–17–9 || 109

| 77 || March 26 || Calgary || 7 – 5 || Chicago || || 51–17–9 || 111

| 78 || March 27 || Calgary || 3 – 2 || Minnesota || || 52–17–9 || 113

| 79 || March 31 || Winnipeg || 1 – 4 || Calgary || || 53–17–9 || 115

| 80 || April 2 || Edmonton || 2 – 4 || Calgary || || 54–17–9 || 117

Legend:

Playoffs Though they finished 43 points behind the Flames in the regular season, the Vancouver Canucks proved a significant challenge in the Smythe Division semi-final. Calgary produced an uninspired effort in the opening game that resulted in a 4–3 loss as former Flame Paul Reinhart scored the winner for Vancouver in overtime. The Flames rebounded with 5–2 and 4–0 victories, but the Canucks continued to battle. Vancouver won the game 4 and after losing the fifth, staved off elimination with a 6–3 victory in game six, setting up a seventh and deciding game.