Matt Schaub brought the Texans back from a 21-0 halftime deficit to tie the game and had completed 11 straight when Rodgers-Cromartie, playing with a fractured right index finger, stepped in front of intended receiver Kevin Walter.
The young Cardinals cornerback intercepted, raced down the sideline, then high-stepped the final 20 yards for the score.
A 60-yard kickoff return by Andre Davis helped set up the final Houston threat. Schaub quickly moved the team to the 1, but Chris Brown was stopped on second down, there was an incomplete pass on third and Brown was stopped again on fourth down with 40 seconds left.
Kurt Warner topped 300 yards passing for the 50th time in his career but he and the Arizona offense struggled after a near-perfect first half.
Warner completed 26 of 38 passes for 302 yards, but almost all of them came in the first half. In the first two quarters, the 38-year-old quarterback was 20 of 23 for 262 yards, including a pair of touchdown passes to Larry Fitzgerald in the final 1:44 to give Arizona a 21-0 lead at the break.
Schaub was the one who was magnificent in the second half. Overall, the Houston quarterback set franchise records for completions and attempts, going 35 for 50 for 371 yards. In the second half, he was 25 of 32 for 279 yards. He threw two touchdown passes to Andre Johnson. The second, with the big receiver bowling over three defenders on a 17-yard scoring play, tied it at 21 with 6:59 to play.
The Cardinals (2-2) couldn't move after that, but they pinned Houston (2-3) on its 11-yard line. Houston methodically advanced to its 47, and on third-and-7, Schaub threw to the sideline toward Walter. Rodgers-Cromartie got there first and there was no one who could stop him, even though he high-stepped nearly the final half of the way.
Houston seemed destined to tie it when Schaub's 5-yard pass to Steve Slaton made it second and goal at the 1. Brown was stopped just inside the 1, then on a play action pass, Schaub threw too high to Joel Dressen, who was open in the back of the end zone.
That made it fourth down, and with the noisy home crowd at its loudest, Brown again failed to make it to the goal line.
The Cardinals scored on their first possession and were at the Houston 9 on their second, when a vicious hit by Eugene Wilson forced Anquan Boldin to fumble.
The game stayed 7-0 until Warner went 9 for 9 on two late first-half touchdown drives. The first went 68 yards in seven plays, with Warner throwing 9 yards to Fitzgerald for the score.
Houston went three-and-out and a 29-yard punt by Matt Turk gave Arizona the ball on the Texans 48. Warner threw 10 yards to Jerheme Urban and 12 yards to Boldin, then hit Fitzgerald on a 26-yard scoring play. The drive took 53 seconds.