Yates tossed two TDs to DeAndre Hopkins, who had 118 yards receiving, and Alfred Blue caught the pass from Shorts in a 24-17 win over the New York Jets (5-5).
The Texans (5-5) have won three games in a row for the first time since 2012. And they did it with Yates, who threw for 229 yards in his first start since Jan. 15, 2012, in the playoffs for Houston as a rookie.
Yates, who was signed on Oct. 28 after Ryan Mallett was released, started in place of Brian Hoyer who was out with a concussion.
The game was tied in the third quarter when the TD pass by Shorts made it 17-10. Yates and Hopkins linked up for a 20-yard score on the next possession.
Ryan Fitzpatrick, who played after having surgery on his non-throwing thumb on Nov. 13, got New York within 24-17 with a touchdown run with 4 1/2 minutes left, but was intercepted on the next two drives to seal the win for Houston. Fitzpatrick was 19 of 39 for 216 yards with a touchdown against the team he started 12 games for last year.
The Texans didn't manage a first down in the fourth quarter, but held on for the win thanks to interceptions by Eddie Pleasant and Andre Hal.
Hopkins tied a franchise record held by Andre Johnson with nine receiving touchdown this season. He beat Jets cornerback Darrelle Revis repeatedly before the cornerback left the game in the third quarter with a head injury.
J.J. Watt had eight tackles and two sacks, but it was a day where his perfect record on offense was blemished.
The Texans had a first down at the 6 in the first quarter, but their offense stalled after that and they settled for a 20-yard field goal to take a 3-0 lead. Watt got in on offense on that drive and for the first time in his career didn't catch a pass thrown to him.
He came in on second-and-2 from the 2-yard line and Yates targeted him in the corner of the end zone. But he couldn't grab the ball under heavy pressure from Calvin Pryor.
It was the fourth time in his career he'd had a pass thrown to him and had reeled in each of the previous three for touchdowns. All of those scores came last season.
Shorts, a quarterback early in his college career at Mount Union, took a lateral from Yates and tossed a 21-yard touchdown pass to a wide-open Blue to make it 17-10 with about eight minutes left in the third quarter.
Shorts was the star of that entire drive, grabbing a 16-yard reception on third-and-13 before grabbing a 35-yard reception on the next play. He took a direct snap and ran for 5 yards two plays before the TD throw.
The Texans made it 24-10 when Hopkins caught a 20-yard touchdown pass late in the third quarter.
The Jets tied at 10-10 early in the third when Fitzpatrick connected with Brandon Marshall for a 21-yard touchdown. New York got a boost on that drive from a 44-yard pass interference penalty on Quintin Demps.
Hopkins put the Texans on top when he got in front of Revis and grabbed a 61-yard touchdown reception to make it 10-3 with about three minutes left in the first half. The play came two plays after another big catch by Hopkins, where he again beat Revis and snagged the ball one-handed for an 18-yard gain.
Williams sacked Yates, who fumbled the ball in the second quarter. Williams pounced on it to give New York the ball near midfield. Randy Bullock, who was cut by the Texans earlier this season, made a 40-yard field goal to tie it at 3 with about nine minutes left in the second.
NOTES: Jets C Nick Mangold left in the first quarter with a hand injury and didn't return. ... Houston CB A.J. Bouye didn't return after leaving in the second quarter to be evaluated for a concussion.
Catch highlights of this one on Inside the Game tonight at 10:35pm on ABC13.
PHOTOS: Fans and cheerleaders at NRG