Johnson sparked the turnaround by making his first nine shots and his first three 3-pointers in helping San Antonio win for the first time since Nov. 11, ending the second-worst skid in team history.
"This has been the first game in a while where we were clicking defensively," Johnson said. "You can tell when we get stops, get out and run and be able to get out front. If we can keep that mindset of defense first, get stops and we let the offense take care of itself, we'll be in great shape."
Spurs coach Gregg Popovich returned after missing the previous two games with what the team termed a "minor medical procedure."
Rockets coach Stephen Silas said the matchup between the Western Conference's worst two records would be a "battle of young, inconsistent, hard-playing guys."
The Spurs' defensive efforts were the difference.
The Rockets committed 14 turnovers and shot 45% from the field, while the Spurs shot 55% and were 13 for 36 on 3-pointers.
"I didn't like our swagger tonight," Silas said. "I didn't like our defensive intensity. I didn't like our attention to detail. I didn't like how they were the aggressor, and we weren't."
Johnson went 5 for 5 to open the game after struggling for much of the past month. The Spurs rode Johnson's hot start, shooting 12 for 19 in taking a 24-21 lead.
"I thought he held the ball less," Popovich said. "He caught it, he poled it and attacked the rim without any hesitation, especially in the first half. He did that great."
Malaki Branham sandwiched a 3-pointer between a pair of 3s by Johnson as the Spurs rallied for a 68-65 lead four minutes into the second half. San Antonio was 8 for 14 on 3-pointers in building a 14-point lead in the third quarter.
San Antonio extended its lead to 20 points midway through the final period.
Rockets: Houston opens a season-high, seven-game homestand Sunday against Milwaukee. The homestand ends Dec. 23 against Dallas. ... Josh Christopher was initially ruled out but was upgraded to available prior to the game. Christopher has a bruised left foot. He had two points in five minutes.
Spurs: San Antonio has played 15 of its 25 games without at least one player from its opening night starting lineup of Johnson, Jones, Vassell, Sochan and Poeltl. ... The Spurs ae 1-15 when trailing after the first quarter. ... Rookie Blake Wesley is nearing a return after being out since Nov. 1 Grade 3 left MCL sprain. Wesley has been practicing 3-on-3 with the team.
Spurs center Zach Collins took a couple of blows to the back of the head but remained in the game.
Collins had 10 points, five rebounds and three assists in 27 minutes.
"He plays sort of a nasty game," Popovich said. "I enjoy that because we don't have a lot of people who play like that. (Spurs have) really nice guys, but Zach gives us a little bit of nastiness out there, and you need some of that."
Collins initially whiplashed and smacked the back of his head after tumbling to the court. He fell awkwardly after failing to block Sengun's one-handed dunk. Sengun's dunk was nullified by an offensive foul, which was upheld by video review.
Collins exited the game but was cleared to come back.
After returning, Collins was clipped in the back of the neck by an elbow from 7-foot-4 center Boban Marjanovic late in the fourth quarter but remained in the game.
Rockets: Host Milwaukee on Sunday.
Spurs: At Miami on Saturday.