The Jets had to scramble for the win after blowing a 16-point lead.
They took over at their own 28-yard line, down 27-23 with no timeouts and 49 seconds to play and moved to the Houston 6-yard line thanks to completions from Mark Sanchez to LaDainian Tomlinson and Braylon Edwards.
Sanchez then found Holmes in the left corner of the end zone for the go-ahead score, and New York (8-2) had its third straight win. The Jets' signal-caller went 22-of-38 passing for 315 yards, with three touchdowns and an interception.
The Texans (4-6) blew a game in the last minute for the second straight week.
Matt Schaub passed for 254 yards and a touchdown and Arian Foster gained 84 yards and two touchdowns on 22 carries in the setback.