The 2003–04 Philadelphia Flyers season was the franchise's 37th season in the National Hockey League (NHL). The Flyers reached the Eastern Conference finals but lost in seven games to the eventual champion Tampa Bay Lightning.

Regular season Free-agent goaltender Jeff Hackett was signed from the Boston Bruins to replace Roman Cechmanek and challenge backup Robert Esche for the number one spot in 2003–04, but Hackett was forced to retire in February due to vertigo. During the course of the season, serious injuries suffered by both Jeremy Roenick (broken jaw) and Keith Primeau (concussion) in February forced the Flyers to trade for the Chicago Blackhawks' Alexei Zhamnov, who filled in well and kept the Flyers afloat. Esche entrenched himself as starter and remained in that position even after the Flyers re-acquired Sean Burke from the Phoenix Coyotes, as the Flyers clinched the Atlantic Division title over the New Jersey Devils on the last day of the season.

Season standings

Playoffs Though solid in net, Esche's performance was over-shadowed by the play of captain Keith Primeau in the playoffs. Primeau led the Flyers past the defending Stanley Cup champion Devils in five, and the Toronto Maple Leafs in six on their way to the Eastern Conference finals and a match-up with the Tampa Bay Lightning. Despite winning Game 6 on the late-game heroics of Primeau and winger Simon Gagne, the Flyers would come up short once again losing Game 7 in Tampa, 2–1.

Schedule and results

Preseason

| 1 || September 19 || 6–1 || align="left"| New Jersey Devils || 1–0–0 || W

| 2 || September 20 || 4–2 || align="left"| @ Washington Capitals || 2–0–0 || W

| 3 || September 23 || 0–3 || align="left"| @ New Jersey Devils || 2–1–0 || L

| 4 || September 26 || 5–4 OT || align="left"| New Jersey Devils || 3–1–0 || W

| 5 || September 27 || 2–4 || align="left"| @ New Jersey Devils || 3–2–0 || L

| 6 || September 30 || 1–4 || align="left"| New York Islanders || 3–3–0 || L

| 7 || October 1 || 4–4 OT || align="left"| @ Washington Capitals || 3–3–1 || T

| 8 || October 2 || 2–4 || align="left"| @ New York Islanders || 3–4–1 || L |- | colspan="6" style="text-align:center;"| Notes: Game played at Sovereign Bank Arena in Trenton, New Jersey. Game played at Giant Center in Hershey, Pennsylvania.

Legend:

Regular season

| 1 || October 9 || 2–0 || align="left"| Buffalo Sabres || Hackett || 1–0–0–0 || 2 ||

| 2 || October 11 || 3–3 OT || align="left"| Pittsburgh Penguins || Esche || 1–0–1–0 || 3 ||

| 3 || October 16 || 0–0 OT || align="left"| @ San Jose Sharks || Hackett || 1–0–2–0 || 4 ||

| 4 || October 18 || 5–4 || align="left"| @ Phoenix Coyotes || Hackett || 2–0–2–0 || 6 ||

| 5 || October 21 || 0–4 || align="left"| @ Los Angeles Kings || Hackett || 2–1–2–0 || 6 ||

| 6 || October 22 || 3–4 OT || align="left"| @ Mighty Ducks of Anaheim || Esche || 2–1–2–1 || 7 ||

| 7 || October 25 || 4–4 OT || align="left"| Carolina Hurricanes || Hackett || 2–1–3–1 || 8 ||

| 8 || October 27 || 5–0 || align="left"| Montreal Canadiens || Esche || 3–1–3–1 || 10 ||

| 9 || October 29 || 5–1 || align="left"| Florida Panthers || Esche || 4–1–3–1 || 12 ||

| 10 || October 30 || 2–3 || align="left"| @ New Jersey Devils || Hackett || 4–2–3–1 || 12 ||

| 11 || November 1 || 7–1 || align="left"| @ Toronto Maple Leafs || Esche || 5–2–3–1 || 14 ||

| 12 || November 6 || 4–2 || align="left"| Washington Capitals || Esche || 6–2–3–1 || 16 ||

| 13 || November 8 || 2–1 OT || align="left"| @ New York Rangers || Hackett || 7–2–3–1 || 18 ||

| 14 || November 11 || 2–1 || align="left"| New York Islanders || Hackett || 8–2–3–1 || 20 ||

| 15 || November 13 || 4–3 OT || align="left"| Vancouver Canucks || Esche || 9–2–3–1 || 22 ||

| 16 || November 15 || 4–0 || align="left"| Atlanta Thrashers || Hackett || 10–2–3–1 || 24 ||

| 17 || November 18 || 2–2 OT || align="left"| @ Carolina Hurricanes || Hackett || 10–2–4–1 || 25 ||

| 18 || November 20 || 3–1 || align="left"| Minnesota Wild || Esche || 11–2–4–1 || 27 ||

| 19 || November 22 || 3–2 || align="left"| Boston Bruins || Hackett || 12–2–4–1 || 29 ||

| 20 || November 26 || 1–1 OT || align="left"| @ Pittsburgh Penguins || Esche || 12–2–5–1 || 30 ||

| 21 || November 28 || 4–2 || align="left"| Carolina Hurricanes || Esche || 13–2–5–1 || 32 ||

| 22 || November 29 || 5–1 || align="left"| @ New York Islanders || Hackett || 14–2–5–1 || 34 ||

| 23 || December 1 || 1–4 || align="left"| @ Ottawa Senators || Esche || 14–3–5–1 || 34 ||

| 24 || December 3 || 5–2 || align="left"| Pittsburgh Penguins || Hackett || 15–3–5–1 || 36 ||

| 25 || December 5 || 3–2 || align="left"| Phoenix Coyotes || Esche || 16–3–5–1 || 38 ||

| 26 || December 6 || 1–1 OT || align="left"| @ Boston Bruins || Hackett || 16–3–6–1 || 39 ||

| 27 || December 8 || 3–2 || align="left"| @ Montreal Canadiens || Hackett || 17–3–6–1 || 41 ||

| 28 || December 10 || 1–1 OT || align="left"| @ Columbus Blue Jackets || Hackett || 17–3–7–1 || 42 ||

| 29 || December 12 || 3–3 OT || align="left"| @ New Jersey Devils || Hackett || 17–3–8–1 || 43 ||

| 30 || December 13 || 0–2 || align="left"| New Jersey Devils || Hackett || 17–4–8–1 || 43 ||

| 31 || December 16 || 2–3 OT || align="left"| Calgary Flames || Hackett || 17–4–8–2 || 44 ||

| 32 || December 18 || 4–5 OT || align="left"| Tampa Bay Lightning || Hackett || 17–4–8–3 || 45 ||

| 33 || December 20 || 3–1 || align="left"| New York Islanders || Esche || 18–4–8–3 || 47 ||

| 34 || December 21 || 1–4 || align="left"| @ Atlanta Thrashers || Hackett || 18–5–8–3 || 47 ||

| 35 || December 23 || 2–4 || align="left"| @ New York Islanders || Hackett || 18–6–8–3 || 47 ||

| 36 || December 27 || 2–3 OT || align="left"| @ Colorado Avalanche || Hackett || 18–6–8–4 || 48 ||

| 37 || December 29 || 2–2 OT || align="left"| @ Dallas Stars || Esche || 18–6–9–4 || 49 ||

| 38 || December 30 || 7–2 || align="left"| @ St. Louis Blues || Esche || 19–6–9–4 || 51 ||

| 39 || January 2 || 2–1 || align="left"| @ Florida Panthers || Hackett || 20–6–9–4 || 53 ||

| 40 || January 3 || 1–6 || align="left"| @ Tampa Bay Lightning || Esche || 20–7–9–4 || 53 ||

| 41 || January 7 || 1–1 OT || align="left"| @ Buffalo Sabres || Esche || 20–7–10–4 || 54 ||

| 42 || January 8 || 3–4 OT || align="left"| Florida Panthers || Hackett || 20–7–10–5 || 55 ||

| 43 || January 10 || 0–3 || align="left"| Edmonton Oilers || Esche || 20–8–10–5 || 55 ||

| 44 || January 12 || 1–2 || align="left"| Pittsburgh Penguins || Esche || 20–9–10–5 || 55 ||

| 45 || January 13 || 2–6 || align="left"| @ Buffalo Sabres || Hackett || 20–10–10–5 || 55 ||

| 46 || January 16 || 4–1 || align="left"| Toronto Maple Leafs || Esche || 21–10–10–5 || 57 ||

| 47 || January 17 || 4–0 || align="left"| @ Toronto Maple Leafs || Esche || 22–10–10–5 || 59 ||

| 48 || January 20 || 1–4 || align="left"| Montreal Canadiens || Esche || 22–11–10–5 || 59 ||

| 49 || January 22 || 4–2 || align="left"| @ New York Rangers || Esche || 23–11–10–5 || 61 ||

| 50 || January 24 || 2–1 || align="left"| Buffalo Sabres || Esche || 24–11–10–5 || 63 ||

| 51 || January 25 || 4–1 || align="left"| @ Washington Capitals || Esche || 25–11–10–5 || 65 ||

| 52 || January 28 || 3–3 OT || align="left"| @ Florida Panthers || Esche || 25–11–11–5 || 66 ||

| 53 || January 31 || 5–3 || align="left"| @ Pittsburgh Penguins || Esche || 26–11–11–5 || 68 ||

| 54 || February 2 || 1–2 || align="left"| Tampa Bay Lightning || Little || 26–12–11–5 || 68 ||

| 55 || February 4 || 5–1 || align="left"| Washington Capitals || Niittymaki || 27–12–11–5 || 70 ||

| 56 || February 5 || 5–1 || align="left"| @ Atlanta Thrashers || Niittymaki || 28–12–11–5 || 72 ||

| 57 || February 10 || 4–1 || align="left"| New Jersey Devils || Niittymaki || 29–12–11–5 || 74 ||

| 58 || February 12 || 2–1 || align="left"| @ New York Rangers || Burke || 30–12–11–5 || 76 ||

| 59 || February 14 || 6–2 || align="left"| New York Rangers || Burke || 31–12–11–5 || 78 ||

| 60 || February 16 || 2–5 || align="left"| San Jose Sharks || Burke || 31–13–11–5 || 78 ||

| 61 || February 17 || 2–5 || align="left"| @ Tampa Bay Lightning || Burke || 31–14–11–5 || 78 ||

| 62 || February 19 || 3–4 || align="left"| Boston Bruins || Burke || 31–15–11–5 || 78 ||

| 63 || February 21 || 5–4 || align="left"| Atlanta Thrashers || Burke || 32–15–11–5 || 80 ||

| 64 || February 24 || 3–1 || align="left"| Chicago Blackhawks || Burke || 33–15–11–5 || 82 ||

| 65 || February 26 || 1–1 OT || align="left"| @ Ottawa Senators || Burke || 33–15–12–5 || 83 ||

| 66 || February 28 || 2–3 OT || align="left"| @ Boston Bruins || Esche || 33–15–12–6 || 84 ||

| 67 || February 29 || 2–4 || align="left"| @ Detroit Red Wings || Burke || 33–16–12–6 || 84 ||

| 68 || March 3 || 5–2 || align="left"| Nashville Predators || Esche || 34–16–12–6 || 86 ||

| 69 || March 5 || 5–3 || align="left"| Ottawa Senators || Esche || 35–16–12–6 || 88 ||

| 70 || March 6 || 1–2 || align="left"| @ Washington Capitals || Burke || 35–17–12–6 || 88 ||

| 71 || March 9 || 3–1 || align="left"| @ New Jersey Devils || Esche || 36–17–12–6 || 90 ||

| 72 || March 11 || 2–2 OT || align="left"| Dallas Stars || Esche || 36–17–13–6 || 91 ||

| 73 || March 13 || 2–1 || align="left"| New Jersey Devils || Esche || 37–17–13–6 || 93 ||

| 74 || March 14 || 3–3 OT || align="left"| @ Pittsburgh Penguins || Burke || 37–17–14–6 || 94 ||

| 75 || March 18 || 2–3 || align="left"| Toronto Maple Leafs || Esche || 37–18–14–6 || 94 ||

| 76 || March 20 || 3–0 || align="left"| New York Rangers || Esche || 38–18–14–6 || 96 ||

| 77 || March 23 || 4–2 || align="left"| @ Carolina Hurricanes || Burke || 39–18–14–6 || 98 ||

| 78 || March 25 || 2–4 || align="left"| New York Islanders || Esche || 39–19–14–6 || 98 ||

| 79 || March 27 || 1–3 || align="left"| New York Rangers || Esche || 39–20–14–6 || 98 ||

| 80 || April 1 || 2–0 || align="left"| @ Montreal Canadiens || Burke || 40–20–14–6 || 100 ||

| 81 || April 2 || 1–3 || align="left"| Ottawa Senators || Esche || 40–21–14–6 || 100 ||

| 82 || April 4 || 3–3 OT || align="left"| @ New York Islanders || Esche || 40–21–15–6 || 101 ||

Legend:

Playoffs

| 1 || April 8 || 3–2 || align="left"| New Jersey Devils || Esche || 19,608 || Flyers lead 1–0 ||

| 2 || April 10 || 3–2 || align="left"| New Jersey Devils || Esche || 19,779 || Flyers lead 2–0 ||

| 3 || April 12 || 2–4 || align="left"| @ New Jersey Devils || Esche || 18,023 || Flyers lead 2–1 ||

| 4 || April 14 || 3–0 || align="left"| @ New Jersey Devils || Esche || 19,040 || Flyers lead 3–1 ||

| 5 || April 17 || 3–1 || align="left"| New Jersey Devils || Esche || 19,778 || Flyers win 4–1 ||

| 1 || April 22 || 3–1 || align="left"| Toronto Maple Leafs || Esche || 19,447 || Flyers lead 1–0 ||

| 2 || April 25 || 2–1 || align="left"| Toronto Maple Leafs || Esche || 19,792 || Flyers lead 2–0 ||

| 3 || April 28 || 1–4 || align="left"| @ Toronto Maple Leafs || Esche || 19,628 || Flyers lead 2–1 ||

| 4 || April 30 || 1–3 || align="left"| @ Toronto Maple Leafs || Esche || 19,614 || Series tied 2–2 ||

| 5 || May 2 || 7–2 || align="left"| Toronto Maple Leafs || Esche || 19,825 || Flyers lead 3–2 ||

| 6 || May 4 || 3–2 OT || align="left"| @ Toronto Maple Leafs || Esche || 19,625 || Flyers win 4–2 ||

| 1 || May 8 || 1–3 || align="left"| @ Tampa Bay Lightning || Esche || 21,425 || Lightning lead 1–0 ||

| 2 || May 10 || 6–2 || align="left"| @ Tampa Bay Lightning || Esche || 21,314 || Series tied 1–1 ||

| 3 || May 13 || 1–4 || align="left"| Tampa Bay Lightning || Esche || 19,897 || Lightning lead 2–1 ||

| 4 || May 15 || 3–2 || align="left"| Tampa Bay Lightning || Esche || 19,872 || Series tied 2–2 ||

| 5 || May 18 || 2–4 || align="left"| @ Tampa Bay Lightning || Esche || 21,517 || Lightning lead 3–2 ||

| 6 || May 20 || 5–4 OT || align="left"| Tampa Bay Lightning || Esche || 19,910 || Series tied 3–3 ||