In 2004, Hafner had a breakout offensive season. As the primary DH in the Indians' line-up, he finished the season in the top ten in the league in on-base percentage (.410, 3rd), slugging percentage (.583, 4th), doubles (41, 6th), extra base hits (72, 7th), RBI (109, 9th) and batting average (.311, 10th). He also hit 28 home runs (16th in the AL) and scored 96 runs (20th in the AL). Hafner topped the .300 mark in batting average each month of the season except August–when he hit a respectable .274–and was particularly hot in July, hitting .360 with 8 home runs and 28 RBI. He hit his first career grand slam in the Indians' home opener on April 12, against Kyle Lohse of the Minnesota Twins.