The Commodores (13-15, 7-9 Southeastern Conference) recovered after the Tigers (9-20, 3-13) whittled a 14-point lead down to four several times in the second half.
Johnson had eight assists and five rebounds for Vanderbilt, which has won four of its last five games. Johnson hit four straight free throws and Josh Henderson and Dai-Jon Parker each made a pair in the final 50 seconds. Henderson scored 11 points.
Bright, who hit the game-winner with .8 seconds left against Georgia on Wednesday night, made 4 of 5 3-pointers and had eight rebounds.
Chris Denson led Auburn with 16 points off the bench.
It's the third 20-loss season in Auburn history and the second in Tony Barbee's three seasons. The Tigers have lost 13 of their last 14 games.
Jordan Price hit two free throws with 52 seconds left to bring Auburn to within 54-49 after Vandy managed just one point on a string of four possessions against the full-court press.
Johnson then hit two free throws after a quick foul, but the Tigers stayed alive with Allen Payne's follow shot after two offensive rebounds. Johnson and his teammates then iced it at the line.
The Commodores shot 7 of 27 (26 percent) in the first half before heating up. They were 13 of 29 (45 percent) in the second half.
Auburn struggled from the floor, hitting 16 of 49 (33 percent).
It appeared like it might become a much easier win for the Commodores.
Vandy closed the first half with 10 consecutive points to take a 26-17 halftime lead, holding the Tigers to one point after Denson's alley oop from Frankie Sullivan with 9:52 left.
The game was tied until Bright started the closing surge with two 3-pointers in a span of 32 seconds.
The Commodores scored the first five points of the second half as Auburn's streak of consecutive missed shots ran to 17.
Denson's runner in the lane ended that drought with 16:13 left and sparked a 14-4 run.
Denson closed it with his second alley oop of the game from Frankie Sullivan, and his first 3-pointer in five games made it 35-31 with 12:30 to play.
The Tigers cut the deficit to four several more times, but the Commodores kept answering right back -- several times with 3-pointers. The Commodores made 10 of 26 3s (39 percent).