McGrady sat out Wednesday's game against Seattle with a sore left shoulder and the Rockets won 103-80. This time, defensive specialist Shane Battier was sidelined with a bruised left foot and ankle.
As usual, Houston's role players picked up the slack.
Rookie Carl Landry added 14 points and seven rebounds, and reserve guard Bobby Jackson had 13 points as the Rockets stayed in the hunt for the No. 1 seed in the Western Conference playoffs. They moved 1½ games ahead of the Suns in the standings.
"I couldn't be prouder of our team," Houston coach Rick Adelman said. "That's a very good team and our guys, they came out with a real resolve and it showed."
Amare Stoudemire scored 37 points and Shaquille O'Neal added 16 points for the Suns, who mustered their lowest point total since a 116-86 loss to Detroit on Feb. 24.
"The Rockets played well and we didn't play particularly well," said Stoudemire, who also had 11 rebounds. "Their bench came out and gave their team a big spark and that is what your bench is supposed to do. They all did what they had to do to get the win."
Phoenix shot 46 percent (35-of-76), but committed 15 turnovers that led to 13 points for the Rockets. Houston had only five turnovers, matching a season low, and scored 19 points off 13 offensive rebounds.
"We really needed this game," Scola said. "We could've fallen all the way to the sixth spot [in the standings] and lose our home-court advantage. It was a really important game."
Stoudemire hit nine of his first 11 shots and scored 18 points in the first 10 minutes.
The Rockets hit six of eight shots after falling behind 13-2 and Jackson's reverse layup with 21 seconds left in the opening quarter gave Houston its first lead, 29-28.
Houston led 59-47 at the break after finishing the half with an 18-8 spurt. Houston outrebounded Phoenix 22-14 and scored 12 points off 11 turnovers by Phoenix in the first two quarters.
"We answered the challenge tonight," said McGrady, who had only five points at halftime.
Houston pushed the lead to 16 early in the third quarter and the Suns became visibly frustrated. Dikembe Mutombo blocked Stoudemire's shot on a drive and Stoudemire gave Mutombo a retaliatory elbow. The two jawed at each other on the Suns' next possession and players from both teams separated them.
After a 2-for-9 start, McGrady scored 10 points in the third quarter as Houston stayed comfortably ahead. McGrady drew the defense, then passed to Landry for a layup that put the Rockets up 77-61 with 2:13 left. Landry was fouled by Stoudemire and added a free throw to give Houston its biggest lead.
"You go right down the whole roster, with Luis and our whole bench," Adelman said. "Terrific."
The Suns hit five of their first 12 shots in the final quarter, not good enough to mount a significant charge. Scola hit another short shot from the baseline to put Houston ahead 98-81 with 2:51 left and Adelman started putting in all reserves.
The Rockets have three games left in the regular season -- at Denver on Sunday, at Utah on Monday and back home for the finale against the Los Angeles Clippers next Wednesday.
"Tonight was a big game for us," said Mutombo, who blocked three shots and scored eight points. "If you look at the Western Conference standings right now, you can't predict anything or who's going to finish where. Coach [Adelman] was telling us all we had to do was continue playing hard and play every game like it was the last game and don't worry about anything."
Houston beat Phoenix for just the third time in the last 11 meetings. The Suns had won seven of the previous eight meetings in Houston.
The Rockets have won 34 of their last 40 games and 21 of 23 home games.
Steve Nash had nine assists and only six points for the Suns. ... Battier snapped a streak of 221 consecutive games played. ... The Rockets unveiled a bronze monument in front of the Toyota Center honoring Hakeem Olajuwon before the game. Olajuwon had a courtside seat next to team owner Les Alexander. Recently married rap mogul Jay-Z and pop star Beyonce were sitting on the other side of Olajuwon. Jay-Z performed at the Toyota Center on Thursday night.