The 2004 season was the Minnesota Vikings' 44th in the National Football League. The Vikings finished the 2004 season going 3–7 over the final 10 weeks, just like they did in 2003; however, they made the playoffs with an overall 8–8 record. Quarterback Daunte Culpepper amassed MVP-level statistics, throwing for 4,717 passing yards (leading the NFL), 39 passing touchdowns (a franchise record) and 5,123 total yards (an NFL record).
In the wildcard round of the playoffs, the Vikings defeated their rival Green Bay Packers 31–17 in their first ever playoff meeting, making them the second team in NFL history to have a .500 record (8–8) in the regular season and win a playoff game (the first team to do it was the St. Louis Rams, who beat the Seattle Seahawks 27–20 the day before the Vikings–Packers game took place). In the divisional round, the Vikings were defeated 27–14 by the eventual NFC champion Philadelphia Eagles and did not return to the playoffs for four years.
The Vikings kicked off the season hosting the Bill Parcells coached Dallas Cowboys. After an opening quarter that only saw the Cowboys recording a field goal, Daunte Culpepper caught fire, throwing two second quarter touchdowns to Onterrio Smith and Marcus Robinson. Vinny Testaverde responded down 14–3, finding Terry Glenn for a 32-yard touchdown as the half expired. Randy Moss found his groove in the third quarter, finding himself on the receiving end of two Daunte Culpepper touchdowns. In the fourth quarter, the Cowboys drove into the red zone down 28–17, but Antoine Winfield forced and recovered a Richie Anderson fumble, which led to Daunte Culpepper's fifth touchdown pass, via a 43-yard pass to Kelly Campbell. Onterrio Smith helped ice the game away, finishing with 76 yards rushing, giving him 139 yards from scrimmage. The Vikings defense did show some holes in the win, allowing 41-year-old Vinny Testaverde to pass for 355 yards, while also allowing 71 yards rushing on the day.
The Vikings traveled to Philadelphia for a Monday night showdown with the NFC favorite Eagles. The Vikings started the game with a Morten Andersen field goal. The Eagles then responded with a strong drive by Brian Westbrook, resulting in an 11-yard touchdown pass from Donovan McNabb to L.J. Smith. The remaining second half resulted in a series of frustrations for the Vikings, twice having a first-and-goal within the 2-yard line, only to result in a field goal and a Culpepper fumble. In the second half, the Eagles scored on their opening possession, capped off with a 20-yard touchdown run by Donovan McNabb. Morten Andersen then missed a field goal with the Vikings down 17–9, which the Eagles responded to with a 45-yard touchdown reception by Terrell Owens three plays later. The Vikings finally found the end zone with 3 minutes remaining on a 4-yard Randy Moss reception to bring the Vikings within 8, only to be countered by a David Akers field goal with 1:15 remaining, putting the game away. The Vikings defense put together a second-straight poor effort, allowing 353 yards of offense. Daunte Culpepper continued his strong start in the loss, throwing for 348 yards, while also being the Vikings leading rusher, finishing with 41 yards.
The Vikings returned home in week 3 to face the 1–1 Bears. The Bears scored a field goal on the opening drive, with the game devolving to a slop fest over the next quarter. The Vikings missed a field goal, responded with Lance Johnstone forcing a Rex Grossman fumble, only for Onterrio Smith to fumble on the following play. After falling behind 6–0, the Vikings finally found offensive success, with Culpepper finding Kelly Campbell for 40 yards, followed several plays later with a 3-yard Randy Moss touchdown. The Vikings extended their lead following a long third quarter drive, culminating with a 1-yard Culpepper touchdown run, giving the Vikings a 17–6 lead. After trading field goals, the Bears cut the lead to 20–16 on a Thomas Jones touchdown run. The Vikings again responded, with Culpepper throwing a 63-yard pass to Nate Burleson, setting up a 2-yard touchdown connection to Randy Moss. Rex Grossman led the Bears in their comeback attempt, as he dove for the pylon, and appeared to fumble out of the back of the end zone. A Lovie Smith challenge showed Grossman crossed the plane prior to fumbling, but Grossman tore his ACL on the play, ending his 2004 season. The Bears got the ball with 1:16 left trailing 27–22, but backup quarterback Jonathan Quinn threw three consecutive incompletions, and then be sacked on fourth down by Kevin Williams, sealing the victory for the Vikings. Daunte Culpepper continued to have stellar numbers, throwing for 360 yards, with Randy Moss having 119 yards receiving, and Onterrio Smith having 104 yards receiving, and 94 yards rushing. The defense continued to act as a sieve, with Grossman throwing for 248 yards, and running back Thomas Jones rushing for 110 yards, and adding 71 yards receiving.
The Vikings came out of their bye week to face the 2–2 Houston Texans for the first time in franchise history. The Vikings defense appeared fresh, shutting down David Carr and the Texans in the first half, while Daunte Culpepper and the Vikings offense continued humming, with Culpepper finding Nate Burleson and randy Moss for second quarter touchdowns, giving the Vikings a 14–0 halftime advantage. The Vikings defense continued strongly in the second half, forcing a three-and-out, which the Vikings followed with three Culpepper completions, capped off with a 10-yard Burleson touchdown. David Carr found some success, leading the Texans on two long scoring drives, resulting in touchdowns by Andre Johnson and Dominack Williams. The Vikings seemingly put the game out of reach on a 50-yard touchdown pass from Culpepper to Randy Moss with 6:58 remaining. David Carr continued his career best game, leading two long drives, capping them off with touchdown passes to Derrick Armstrong and David Carr, sandwiching a Vikings three-and-out, forcing overtime. In overtime, the Vikings won the toss, and the teams traded punts. On the Vikings second possession of overtime, Culpepper found Marcus Robinson on a post on 3rd-and-12 from the 50, earning the walk-off win for the Vikings. Culpepper finished with 396 yards passing and five touchdowns, with Mewelde Moore adding 92 yards rushing and 90 yards receiving. The defense ended up allowing David Carr to pass for 372 yards and 3 touchdowns, with Andre Johnson burning the Vikings for 170 yards receiving on 12 catches. The win did bring the Vikings record to 3–1.
The Vikings returned home to host the 2–4 Titans. After a Darren Bennett punt, Steve McNair led the Titans down the field, setting up a Gary Anderson 40-yard field goal. The Vikings immediately responded with an eight-minute drive of their own, resulting in a 29-yard Morten Andersen field goal. Steve McNair was injured on the ensuing drive, and was replaced by Billy Volek. Volek was overwhelmed by the Vikings defense, throwing three interceptions, and getting sacked twice. Moe Williams and Marcus Robinson scored on short touchdowns for the Vikings, and Mewelde Moore added 138 yards rushing to ice a defensive second half. The Vikings defense had their season best performance, holding the Titans to 243 yards in the victory, which improved their record to 4–1.