Drew Brees snapped out of a two-game funk to throw for 389 yards and four touchdowns, leading the New Orleans Saints past the Arizona Cardinals 48-41 Sunday in the highest-scoring game in the NFL this season.
Brees, who had no TDs and six interceptions his previous two games, completed 37 of 48 with no picks.
Brandin Cooks caught seven passes for a career-best 186 yards for the Saints (6-8), including touchdown plays of 65 and 45 yards.
David Johnson rushed for 53 yards and caught four passes for 55 yards for Arizona (5-8-1). The second-year back became the first player in NFL history to have at least 100 yards from scrimmage in the first 14 games of a season.
Johnson rushed for two touchdowns, giving him 17 TDs this season and 30 in the first 30 games as a pro.
The Cardinals' Carson Palmer threw for 318 yards and two scores.
The teams amassed 913 yards, 488 by New Orleans, 425 by Arizona, which finished 4-3-1 at home.
They traded touchdowns on four possessions in the second half before Brees put New Orleans ahead for good, 41-34, with a 4-yard scoring pass to Michael Thomas with 5:33 to play.
A moment later, the Cardinals' Brittan Golden fumbled and Ken Crawley recovered for the Saints at the Arizona 29. That led to Tim Hightower's 2-yard touchdown run that made it a two-score game with 3:27 remaining.
Palmer threw 30 yards to John Brown for a score with 2:19 left, but the onside kick try went out of bounds and the Saints ran out the clock.
Brees threw for three touchdowns in the first half.
His only bad moment came when Marcus Golden stripped the ball out of his hands and Calais Campbell grabbed it out of the air. The 6-foot-8 lineman, who also had two first-half sacks, rambled 53 yards for a touchdown.
Arizona lost cornerback Marcus Cooper to a back injury early in the second half.
Saints: Host the Buccaneers next Saturday in the final home game of the season.
Cardinals: Visits at Seattle next Saturday, a rematch of NFC West foes who tied 6-6 earlier in the year, a far cry from this 89-point affair.