HOUSTON -- Zach Wilson threw for 145 yards and ran for a touchdown in his return from a sprained right knee, helping the New York Jets rally for a 21-14 win over the Houston Texans on Sunday that snapped a three-game skid.
Wilson, the No. 2 overall pick in April who missed the last four games, was rusty early and threw an interception but put the Jets (3-8) on top with a 4-yard scamper in the third quarter.
The Jets converted two fourth-down attempts on a drive that ended with a 37-yard field goal by Matt Ammendola that made it 21-14 with about 3 1/2 minutes to go.
The Texans (2-9) hoped to build on an upset of Tennessee last week that ended an eight-game skid and looked good early. Tyrod Taylor threw two touchdown passes in the second quarter to give Houston 14-3 lead, but the Texans couldn't do anything offensively after that.
Houston had a chance to tie it after Ammendola's field goal, but Bryce Hall knocked down a pass intended for Nico Collins on fourth-and-2 to give New York the ball back. The Jets worked the clock down and the Texans didn't get the ball again until there were just 20 seconds left.
Taylor threw for 158 yards with two touchdowns and an interception.
The Jets took an 18-14 lead with about eight minutes left in the third quarter, thanks in part to a pair of huge penalties by Houston defensive tackle Ross Blacklock.
The first came when he got a leverage penalty on a field goal attempt to give the Jets a first down at the 8. Wilson was sacked for a loss of 6 on the next play, but Blacklock was offside to give the Jets a first down at the 4.
Wilson scrambled for the score on the next play to put New York on top.
The Jets had a chance to pad the lead early in the fourth quarter, but Ammendola's 42-yard attempt sailed wide left.
The Texans got great field position on their next drive after the Jets punted out of the end zone. But they couldn't move the ball and came away empty when Ka'imi Fairbairn missed a 55-yard field goal with about 10 minutes to go.
Houston played without top defensive player safety Justin Reid, who was inactive because of a coach's decision related to a violation of team rules.
John Franklin-Myers batted down a pass by Taylor and intercepted it on Houston's first drive. He returned it 32 yards to the Houston 37. Jacob Martin sacked Wilson for a 9-yard loss on third down and the Jets settled for a 31-yard field goal to make it 3-0.
Wilson threw a short pass into Ty Johnson's back and Tavierre Thomas snagged it just before it hit the ground for the first interception of his career later in the first quarter.
Houston took advantage of the miscue when Taylor connected with Brevin Jordan on a 13-yard touchdown pass that made it 7-3 early in the second quarter.
The Texans extended the lead to 14-3 when Brandin Cooks hauled in a 40-yard reception in the end zone with about 10 1/2 minutes left in the second quarter.
Austin Walter scored on a 2-yard run with about a minute left in the first half. Backup quarterback Josh Johnson, who was called up from the practice squad for the game with Mike White and Joe Flacco on the COVID-19 list, took a direct snap and ran for the 2-point conversion to cut the lead to 14-11.
Jets: DL Sheldon Rankins injured his knee in the fourth quarter. ... LB Quincy Williams injured a calf in the fourth. ... TE Trevon Wesco had a knee injury late.
Texans: OL Justin McCray left in the third quarter to be evaluated for a concussion. ... DT DeMarcus Walker left in the fourth quarter with a hamstring injury.
Jets: Host Philadelphia next Sunday.
Texans: Host Indianapolis next Sunday.