Simon Terodde had a hand in all the goals, as he set up Thomas Eisfeld's excellent opener before tucking one away himself to give Bochum a 2-0 lead at the break.
However, Sandhausen responded after the hour mark. Dominik Stolz and Aziz Bouhaddouz brought the game level, and the momentum into the visitors' favour.
Terodde remained focused and won a penalty late on, which he converted to give the Ruhrstadion outfit a much-needed three points.
Home side race into early lead
Bochum began with confidence and were rewarded almost immediately with an early opener. A hopeful ball forward wasn't dealt with at all well by Daniel Schulz, and his attempted clearance fell straight to Simon Terodde. The striker touched the ball down for Thomas Eisfeld, who struck a curling effort into the top corner from 20 yards.
The hosts were constantly on top of the rather sorry looking Sandhausen side, who were struggling to get anything going. They couldn't contain Bochum's stylish passing play and further mistakes cost them a second goal. Terodde latched onto a through ball from Onur Bulut, rounded Marco Knaller and slotted into an empty net. It ended a run of eight games without scoring for the striker, with this his 11th of the league campaign.
It was a half that seemed entertaining, going by the score line, but provided very little in the way of goalmouth action. Alois Schwartz side struggled to muster up any real attacking threat, much like their previous game with SC Freiburg. The only other major chances of note saw Marco Terrazzino's shot cleared off the line by Tim Kister, while Patrick Fabian had a header routinely saved by Knaller - it was a 45 minutes to forget.
Thrilling second period
The second half began evenly, with both sides pushing forward in a bid to add to the score-line. Bochum had opportunities through Tim Hoogland and Eisfeld, with Thomas Pledl leading the charge for Sandhausen. Neither side could make the most of any sights on goal, as the hosts remained in control.
The visitors were, at least, finding more time on the ball and were able to have a breather after a tireless first half. Finally, after 64 minutes, they made the most of a promising attacking position. A sustained spell of pressure and possession led to Aziz Bouhaddouz having a shot well-blocked by Felix Bastians, only for the rebound to by fired home by Dominik Stolz; he sent a cultured finish past Riemann, who had no chance with the sweetly struck drive.
Things would get even better for Schwartz's side, as the leveled not long after. After the Gertjan Verbeek had torn his hair out after the first goal, he could hardly look on at the second as a calamity of errors restored parity. A host of home defenders tried to hack the ball away but it was to no avail and Bouhaddouz took full advantage, spinning and shooting past the wrong-footed Riemann.
It looked like Bochum had, not for the first time, blown yet another comfortable lead. However, they would issue a near immediate response. Terodde picked the ball up in the area before driving to the by-line, only to be brought down by Tim Kister. The forward didn't take last week's crucial spot-kick against 1860 Munich, but was tasked with beating Knaller this time around. He took a short run up but made no mistake, sending him the wrong way to put the hosts back in front.
Peniel Mlapa hit the post late on while Janik Haberer and Terodde had further chances to extend the lead. However, that was of little concern to Verbeek and co. as Guido Winkmann's whistle sounded for full-time and confirmed a deserved victory. The hosts have risen to fourth, five points behind 1. FC Nürnberg. Sandhausen, who could have went level with Bochum, drop down to ninth.