But the Mavericks point guard was able to get it together just in time to make the winning shot in a 80-77 victory over the Rockets, Dallas' ninth consecutive win.
Terry was just 1-of-9 before hitting the go-ahead jumper with 1:09 remaining and then sinking two free throws in the final seconds to secure the win.
Johnson only half-jokingly suggested that Terry's thoughts may already be on this weekend's All-Star festivities.
"He came up big with a big shot and two free throws," Johnson said. "Other than that he wasn't at his best tonight. Maybe he was thinking about the 3-point shootout too early. He and Dirk [Nowitzki] have a little wager going on. I was trying to get him here in Houston rather than getting ready for Vegas too early."
Terry wasn't surprised that his coach discussed that theory with the media.
"I knew he was going to do that," Terry said.
He said he remained confident despite struggling for most of the game.
"I was focused, man," said Terry, who finished with nine points. "It's just some nights where your shot is not going to be there, but you've got to find a way to stay in it, I mean emotionally. I was trying to keep the guys pumped."
Luther Head had a shot in the lane with about six seconds left to give the Rockets the lead, but it bounced out. The Rockets were forced to foul Terry with 4.2 seconds left and he made both shots to extend the lead.
Terry also made a pair of free throws just seconds before his jumper.
Nowitzki had 26 points and Jerry Stackhouse scored 17 for the Mavericks.
"They're very good defensively," Rockets coach Jeff Van Gundy said. "I thought the last two minutes, I've got to do better when they're committing two guys to McGrady even without the ball. We didn't play with assertiveness."
The Mavericks led by two points before the Rockets took a 76-74 lead on a free throw and a 3-pointer by McGrady with about three minutes remaining.
McGrady elicited chants of "MVP!" from the home crowd when he cut through the middle of the lane for a layin that pushed Houston's lead to 69-66. The crowd was quieted though as Nowitzki soon answered with two 3s in a row to put Dallas back on top 72-69 with 6:16 remaining.
Houston trailed by 3 before going on a 6-0 run punctuated by a Dallas turnover and a dunk by Howard that made it 63-60 with 10:33 remaining.
A steal and a pair of baskets by Josh Howard, followed by two quick 3s by Stackhouse gave Dallas a 58-55 lead with less than 30 seconds remaining in the third quarter. It was the first time the Mavericks had led in the second half.
"We were getting bumped around early," Johnson said. "I just didn't like our body language in the first half. I don't like us being in a surrender, retreating position. We had to come out in the second half and establish ourselves a bit more."
Shane Battier said Houston's play just after halftime was the key to the loss.
"We didn't play a complete game," he said. "You can talk about the last couple of minutes, but where we lost the game was in the third quarter. We didn't come out with the rebounding fire that we came out with in the first half."
The Mavericks' last three wins have come on the road, a fact that pleases Johnson.
"I'm extremely proud -- three road wins -- are you kidding me? I don't care if they're against my son's team, it's a good three wins," he said.
Nowitzki scored eight points in the first quarter but didn't score in the second as he sat out almost half of it with two early fouls.
One of the highlights of the first half came when Nowitzki bit on a fake on the baseline by Head, who drove past him for the two-handed dunk. The play earned the second-year player a standing ovation from the sellout crowd.
The Rockets trailed 21-12 before going on a 13-0 run to take a 25-21 lead early in the second quarter. Battier hit three free throws at the end of the second quarter to push Houston's lead to 45-38 at halftime.
The Mavericks were without forward Devean George, who has a sprained right knee. ... Dallas rookie guard Maurice Ager was recalled from the Mavericks' developmental team on Thursday but did not play. ... McGrady was out for about a six-minute span in the first half after he was apparently hit in the head while battling for a rebound.