The 2004 Pittsburgh Pirates season was the 123rd season of the franchise; the 118th in the National League. This was their fourth season at PNC Park. The Pirates finished fifth in the National League Central with a record of 72–89.

Offseason October 2, 2003: Jeff D'Amico was released by the Pittsburgh Pirates. February 19, 2004: Randall Simon was signed as a free agent with the Pittsburgh Pirates.Randall Simon Statistics Baseball-Reference.com February 24, 2004: Raúl Mondesí signed as a free agent with the Pittsburgh Pirates.Raúl Mondesí Statistics Baseball-Reference.com

Regular season

Season standings

Game log

|- style="background:#cfc;" | 1 || April 5 || Phillies || 2–1 || Wells || Millwood || Mesa || 35,702 || 1–0 |- style="background:#fbb;" | 2 || April 7 || Phillies || 4–5 || Cormier || Boehringer || Wagner || 15,126 || 1–1 |- style="background:#cfc;" | 3 || April 8 || Phillies || 6–2 || Vogelsong || Padilla || Mesa || 9,689 || 2–1 |- style="background:#fbb;" | 4 || April 9 || @ Reds || 1–5 || Harang || Fogg || — || 27,713 || 2–2 |- style="background:#fbb;" | 5 || April 10 || @ Reds || 1–3 || Lidle || Wells || Graves || 23,449 || 2–3 |- style="background:#cfc;" | 6 || April 11 || @ Reds || 4–3 || Perez || Haynes || Mesa || 16,925 || 3–3 |- style="background:#cfc;" | 7 || April 12 || @ Cubs || 13–2 || Benson || Maddux || Meadows || 40,483 || 4–3 |- style="background:#fbb;" | 8 || April 14 || @ Cubs || 3–8 || Clement || Vogelsong || — || 38,968 || 4–4 |- style="background:#fbb;" | 9 || April 15 || @ Cubs || 5–10 || Zambrano || Fogg || — || 39,450 || 4–5 |- style="background:#cfc;" | 10 || April 16 || @ Mets || 7–6 || Wells || Moreno || Mesa || 18,554 || 5–5 |- style="background:#cfc;" | 11 || April 17 || @ Mets || 2–1 || Meadows || Trachsel || Mesa || 40,172 || 6–5 |- style="background:#cfc;" | 12 || April 18 || @ Mets || 8–1 || Benson || Seo || — || 44,345 || 7–5 |- style="background:#fbb;" | 13 || April 20 || Cubs || 1–9 || Zambrano || Vogelsong || — || 11,746 || 7–6 |- style="background:#fbb;" | 14 || April 21 || Cubs || 1–12 || Mitre || Fogg || — || 9,933 || 7–7 |- style="background:#fbb;" | 15 || April 23 || Reds || 4–6 || Wilson || Wells || Graves || 17,350 || 7–8 |- style="background:#fbb;" | 16 || April 24 || Reds || 7–9 || Van Poppel || Benson || Graves || 24,732 || 7–9 |- style="background:#cfc;" | 17 || April 25 || Reds || 6–0 || Perez || Acevedo || — || 13,264 || 8–9 |- style="background:#fbb;" | 18 || April 26 || Reds || 2–5 || Harang || Vogelsong || Graves || 8,579 || 8–10 |- style="background:#cfc;" | 19 || April 28 || Astros || 4–2 || Torres || Oswalt || Mesa || 9,813 || 9–10 |- style="background:#fbb;" | 20 || April 29 || Astros || 0–2 || Pettitte || Wells || Dotel || 19,485 || 9–11 |- style="background:#cfc;" | 21 || April 30 || @ Brewers || 4–2 || Benson || Sheets || Mesa || 17,533 || 10–11

|- style="background:#cfc;" | 22 || May 1 || @ Brewers || 8–7 (10) || Boyd || Vizcaino || Mesa || 25,134 || 11–11 |- style="background:#cfc;" | 23 || May 2 || @ Brewers || 4–3 (11) || Meadows || Bennett || Mesa || 16,392 || 12–11 |- style="background:#fbb;" | 24 || May 4 || @ Astros || 3–4 || Pettitte || Fogg || Lidge || 31,083 || 12–12 |- style="background:#fbb;" | 25 || May 5 || @ Astros || 2–6 || Clemens || Wells || — || 35,883 || 12–13 |- style="background:#fbb;" | 26 || May 6 || @ Astros || 2–5 || Miller || Benson || — || 36,055 || 12–14 |- style="background:#fbb;" | 27 || May 7 || Dodgers || 0–4 || Alvarez || Perez || — || 20,944 || 12–15 |- style="background:#fbb;" | 28 || May 8 || Dodgers || 3–4 || Mota || Torres || Gagne || 26,610 || 12–16 |- style="background:#fbb;" | 29 || May 9 || Dodgers || 7–9 (14) || Falkenborg || Grabow || — || 16,554 || 12–17 |- style="background:#cfc;" | 30 || May 11 || @ Rockies || 15–10 (12) || Torres || Lopez || — || 21,123 || 13–17 |- style="background:#fbb;" | 31 || May 13 || @ Rockies || 5–7 || Estes || Benson || Chacon || — || 13–18 |- style="background:#cfc;" | 32 || May 13 || @ Rockies || 11–2 || Perez || Jennings || — || 20,041 || 14–18 |- style="background:#cfc;" | 33 || May 14 || @ Giants || 4–2 || Boehringer || Rodriguez || Mesa || 39,955 || 15–18 |- style="background:#cfc;" | 34 || May 15 || @ Giants || 6–4 || Fogg || Tomko || Mesa || 41,042 || 16–18 |- style="background:#cfc;" | 35 || May 16 || @ Giants || 8–1 || Wells || Williams || — || 40,705 || 17–18 |- style="background:#fbb;" | 36 || May 19 || Padres || 3–6 || Lawrence || Johnston || Hoffman || — || 17–19 |- style="background:#fbb;" | 37 || May 19 || Padres || 3–7 || Peavy || Perez || — || 13,366 || 17–20 |- style="background:#cfc;" | 38 || May 20 || Padres || 9–7 || Gonzalez || Puffer || Mesa || 11,029 || 18–20 |- style="background:#cfc;" | 39 || May 22 || Brewers || 3–1 || Fogg || Sheets || Mesa || 25,736 || 19–20 |- style="background:#fbb;" | 40 || May 23 || Brewers || 1–2 || Vizcaino || Meadows || Kolb || 19,326 || 19–21 |- style="background:#cfc;" | 41 || May 26 || @ Cardinals || 11–8 || Benson || Marquis || — || 29,526 || 20–21 |- style="background:#fbb;" | 42 || May 27 || @ Cardinals || 3–6 || Suppan || Vogelsong || Isringhausen || 31,107 || 20–22 |- style="background:#cfc;" | 43 || May 28 || Cubs || 9–5 || Torres || Borowski || — || — || 21–22 |- style="background:#cfc;" | 44 || May 28 || Cubs || 5–4 (10) || Gonzalez || Beltran || — || 24,657 || 22–22 |- style="background:#cfc;" | 45 || May 29 || Cubs || 10–7 || Fogg || Mitre || — || 37,806 || 23–22 |- style="background:#fbb;" | 46 || May 30 || Cubs || 1–12 || Zambrano || Grabow || — || 30,392 || 23–23 |- style="background:#fbb;" | 47 || May 31 || Cardinals || 3–8 || Marquis || Benson || — || 12,582 || 23–24

|- style="background:#fbb;" | 48 || June 1 || Cardinals || 1–8 || Suppan || Vogelsong || — || 11,540 || 23–25 |- style="background:#fbb;" | 49 || June 2 || Cardinals || 3–5 || Carpenter || Johnston || Isringhausen || 12,100 || 23–26 |- style="background:#fbb;" | 50 || June 3 || Cardinals || 2–4 || Williams || Perez || Isringhausen || 15,386 || 23–27 |- style="background:#cfc;" | 51 || June 4 || @ Cubs || 2–1 || Torres || Borowski || Mesa || 40,024 || 24–27 |- style="background:#fbb;" | 52 || June 5 || @ Cubs || 1–6 || Zambrano || Benson || — || 39,387 || 24–28 |- style="background:#fbb;" | 53 || June 6 || @ Cubs || 1–4 || Maddux || Vogelsong || Hawkins || 39,016 || 24–29 |- style="background:#fbb;" | 54 || June 7 || @ Rangers || 5–6 (10) || Cordero || Johnston || — || 25,286 || 24–30 |- style="background:#fbb;" | 55 || June 10 || @ Rangers || 7–9 || Francisco || Meadows || Cordero || — || 24–31 |- style="background:#fbb;" | 56 || June 10 || @ Rangers || 4–10 || Rogers || Fogg || — || 27,219 || 24–32 |- style="background:#fbb;" | 57 || June 11 || @ Athletics || 1–6 || Hudson || Benson || — || 23,435 || 24–33 |- style="background:#fbb;" | 58 || June 12 || @ Athletics || 11–12 || Rhodes || Corey || — || 24,606 || 24–34 |- style="background:#fbb;" | 59 || June 13 || @ Athletics || 3–13 || Mulder || Wells || — || 34,328 || 24–35 |- style="background:#fbb;" | 60 || June 15 || Angels || 2–4 || Shields || Torres || Rodriguez || 19,035 || 24–36 |- style="background:#cfc;" | 61 || June 16 || Angels || 5–3 || Fogg || Lackey || Mesa || 22,404 || 25–36 |- style="background:#cfc;" | 62 || June 17 || Angels || 5–2 || Benson || Colon || Mesa || 15,395 || 26–36 |- style="background:#fbb;" | 63 || June 18 || Mariners || 4–5 || Moyer || Vogelsong || Guardado || 29,601 || 26–37 |- style="background:#fbb;" | 64 || June 19 || Mariners || 1–5 || Piñeiro || Burnett || — || 24,341 || 26–38 |- style="background:#fbb;" | 65 || June 20 || Mariners || 4–5 || Garcia || Perez || Guardado || 30,217 || 26–39 |- style="background:#fbb;" | 66 || June 21 || @ Astros || 5–7 || Bullinger || Fogg || Dotel || 33,443 || 26–40 |- style="background:#fbb;" | 67 || June 22 || @ Astros || 4–5 || Oswalt || Benson || Lidge || 31,819 || 26–41 |- style="background:#cfc;" | 68 || June 23 || @ Astros || 7–2 || Vogelsong || Munro || — || 34,242 || 27–41 |- style="background:#fbb;" | 69 || June 24 || @ Astros || 2–3 || Clemens || Burnett || Lidge || 39,851 || 27–42 |- style="background:#fbb;" | 70 || June 25 || @ Reds || 4–6 || Acevedo || Torres || Graves || 41,959 || 27–43 |- style="background:#cfc;" | 71 || June 26 || @ Reds || 1–0 || Corey || Jones || Mesa || 41,376 || 28–43 |- style="background:#cfc;" | 72 || June 27 || @ Reds || 14–4 || Fogg || Wilson || — || 35,262 || 29–43 |- style="background:#cfc;" | 73 || June 28 || Cardinals || 2–1 || Mesa || Tavarez || — || 15,544 || 30–43 |- style="background:#cfc;" | 74 || June 29 || Cardinals || 3–0 || Burnett || Carpenter || Mesa || 18,152 || 31–43 |- style="background:#cfc;" | 75 || June 30 || Cardinals || 6–5 || Mesa || Tavarez || — || 22,368 || 32–43

|- style="background:#cfc;" | 76 || July 2 || Brewers || 8–1 || Perez || Davis || — || — || 33–43 |- style="background:#cfc;" | 77 || July 2 || Brewers || 13–2 || Fogg || Wise || — || 30,047 || 34–43 |- style="background:#cfc;" | 78 || July 3 || Brewers || 5–3 || Benson || Obermueller || Mesa || 28,443 || 35–43 |- style="background:#cfc;" | 79 || July 4 || Brewers || 6–2 || Burnett || Capuano || Mesa || 19,029 || 36–43 |- style="background:#cfc;" | 80 || July 5 || @ Marlins || 3–1 || Wells || Beckett || Mesa || 13,224 || 37–43 |- style="background:#fbb;" | 81 || July 6 || @ Marlins || 3–6 || Bump || Corey || Benitez || 12,330 || 37–44 |- style="background:#cfc;" | 82 || July 7 || @ Marlins || 4–3 || Perez || Pavano || Mesa || 15,135 || 38–44 |- style="background:#fbb;" | 83 || July 8 || @ Expos || 1–2 || Ayala || Grabow || Cordero || 7,746 || 38–45 |- style="background:#cfc;" | 84 || July 9 || @ Expos || 11–0 || Burnett || Hill || — || 7,436 || 39–45 |- style="background:#fbb;" | 85 || July 10 || @ Expos || 0–4 || Biddle || Wells || — || 8,780 || 39–46 |- style="background:#fbb;" | 86 || July 11 || @ Expos || 1–2 || Downs || Fogg || Cordero || 8,101 || 39–47 |- style="background:#cfc;" | 87 || July 16 || Marlins || 6–2 || Benson || Burnett || Mesa || 28,563 || 40–47 |- style="background:#cfc;" | 88 || July 17 || Marlins || 4–2 || Torres || Benitez || Mesa || 26,729 || 41–47 |- style="background:#cfc;" | 89 || July 18 || Marlins || 4–2 || Torres || Koch || Mesa || 18,048 || 42–47 |- style="background:#fbb;" | 90 || July 19 || Expos || 2–6 || Horgan || Grabow || — || 14,787 || 42–48 |- style="background:#cfc;" | 91 || July 20 || Expos || 2–1 || Burnett || Hernandez || Mesa || 18,075 || 43–48 |- style="background:#cfc;" | 92 || July 21 || @ Braves || 4–3 || Benson || Byrd || Mesa || 30,131 || 44–48 |- style="background:#fbb;" | 93 || July 22 || @ Braves || 1–2 (10) || Reitsma || Torres || — || 32,963 || 44–49 |- style="background:#cfc;" | 94 || July 23 || Reds || 6–3 || Perez || Acevedo || Mesa || 37,703 || 45–49 |- style="background:#cfc;" | 95 || July 24 || Reds || 14–4 || Grabow || Harang || — || 37,752 || 46–49 |- style="background:#cfc;" | 96 || July 25 || Reds || 6–5 || Burnett || Van Poppel || Mesa || 24,962 || 47–49 |- style="background:#fbb;" | 97 || July 26 || Braves || 2–4 || Wright || Benson || Smoltz || 19,164 || 47–50 |- style="background:#cfc;" | 98 || July 27 || Braves || 8–4 || Gonzalez || Gryboski || — || 15,946 || 48–50 |- style="background:#fbb;" | 99 || July 28 || Braves || 0–1 || Ortiz || Perez || Smoltz || 22,977 || 48–51 |- style="background:#fbb;" | 100 || July 29 || Braves || 2–3 || Cruz || Mesa || Smoltz || 25,988 || 48–52 |- style="background:#fbb;" | 101 || July 30 || @ Brewers || 0–5 || Davis || Burnett || — || 34,702 || 48–53 |- style="background:#cfc;" | 102 || July 31 || @ Brewers || 4–1 || Vogelsong || Santos || Mesa || 35,152 || 49–53

|- style="background:#fbb;" | 103 || August 1 || @ Brewers || 7–8 || Vizcaino || Meadows || — || 25,047 || 49–54 |- style="background:#fbb;" | 104 || August 3 || @ Dodgers || 2–3 || Penny || Perez || Gagne || 34,581 || 49–55 |- style="background:#fbb;"