Stopping the run was one of the few things the New York Jets had done well this season.
Until they faced David Johnson and the Arizona Cardinals.
Johnson rushed for 111 yards and three touchdowns, and the Cardinals shut down the listless Jets 28-3 on Monday night.
Johnson scored on runs of 58, 2 and 2 yards while becoming the first player to rush for three scores against the Jets since LeSean McCoy did it five years ago.
"I say it each and every week. David's special," Arizona cornerback Patrick Peterson said. "I mean very, very, very special. We got us one in (No.) 31."
The Cardinals (3-3) won their second in a row to climb back to .500. New York (1-5) lost its fourth straight in a rough return to Arizona for Todd Bowles, who was defensive coordinator for the Cardinals for two seasons before getting the Jets coaching job two years ago.
"We've won two in a row," Arizona coach Bruce Arians said. "We're still just a .500 ballclub, but I like the way we look right now."
Arians took no great joy in beating Bowles. Their connection goes back to their days together at Temple three decades ago.
"I'm glad it's over," Arians said.
The Jets' Ryan Fitzpatrick was 16 of 31 for 174 yards and was benched in favor of Geno Smith after New York's longest drive of the night ended in an interception in the end zone late in the third quarter.
"As an offense we are just not consistent right now and the offense goes as the quarterback goes," Fitzpatrick said. "I have got to play better."
Smith's lone series at quarterback ended when he was intercepted by Tyrann Mathieu with 4:20 to play.
"The game was 28-3 with eight minutes left in the game," Bowles said. "We weren't doing anything else. I just wanted to give him some reps. Like a relief pitcher, a starting pitcher, on this day you put in the relief pitcher. Fitz will be (the starter) next week."
Arizona's Carson Palmer , back after missing a 33-21 win at San Francisco with a concussion, completed 23 of 34 passes for 213 yards before leaving with a hamstring strain after throwing a 9-yard TD pass to Michael Floyd with 8:20 remaining.
Arizona scored in the first quarter for the first time this season on the second time Johnson touched the ball.
"Our coach has been harping on us about that," Johnson said. "It felt good to get in the end zone. I felt like that's actually what started everyone getting hyped, everyone getting into the game."
The second-year running back dodged a pair of defenders near the line of scrimmage, and then raced to the end zone on his longest run of the season. Johnson also rushed for 157 yards in the win against the 49ers, winning NFC offensive player of the week honors.
The Jets entered the game second in the NFL in rushing defense at 68 yards per game. They were outgained on the ground 171-33.
New York had 130 yards in the first half, 70 on three receptions by Brandon Marshall . Marshall's 36-yard catch over the middle set up New York's only score, Nick Folk's' 39-yard field goal.
Arizona scored on a pair of 14-play drives in the second half. Johnson got his second 2-yard TD run up the middle, and Palmer passed to Floyd for another TD.
The Jets drove to the Cardinals 14 late in the third quarter but D.J. Swearinger intercepted Fitzpatrick's pass in the end zone to end the threat. It was Fitzpatrick's league-worst 11th interception of the season.
But Marshall said the interception was his fault.
"I read it wrong, Ryan read it right," he said. "He threw a pick, but it's my pick. I've said it all along this season, interceptions are on everyone."
THIRD DOWN WOES
The Jets were 2 for 13 on third-down conversions. They were 0 for 8 before converting one during their long third-quarter drive.
There were 19 penalties in the sloppy game - 10 against New York, nine against Arizona.
Jets: New York returns home to play the Baltimore Ravens on Sunday.
Cardinals: Arizona plays its third straight prime-time game, this one a Sunday night matchup at home against NFC West leader Seattle.