Richmond will meet with winner of an Eastern Washington-Arizona game for the championship Thursday night.
The final basket, only Nelson's second of the game, ended a tight contest in which no more than six points separated the teams.
The lead changed hands four times in the final 54 seconds -- on two free throws by Butler's Bruce Horan and Jamie Smalligan, a 3-pointer by Richmond's Jermaine Bucknor and Nelson's slash across the lane.
Bucknor had 20 points, leading Richmond for the third straight game. Kevin Steenberge scored 16 and Jamaal Scott 11 for the Spiders (5-4).
Smalligan led the Bulldogs (5-4) with 20 points. Avery Sheets had 12 and A.J. Graves and Brandon Polk 11 apiece.
Polk had all his points in the second half, scoring seven in a 3:31 stretch in which he sent Butler into the lead twice.
The teams dueled through four lead changes and four ties in the second half before Steenberge started an 8-2 spurt with a free throw and Richmond took a 46-40 lead with 11:40 remaining.
But Polk went on his splurge, and Butler regained the lead at 51-50 on his free throw.
Neither team led by more than three after that.
Brooks had five points during an 11-2 run by the Bulldogs early in the first half. Sheets capped it with a 3-pointer, sending Butler to a 14-9 lead with 14:20 left.
But Steenberge tied it at 18 with a three-point play with 6:51 to go and dunked 32 seconds later, giving the Spiders the lead again.
Andres Sandoval broke a 26-all tie with a layup for Richmond in the final seconds.