Schulz scored the only goal of the game in the 89th minute for Mirko Slomka's team.
Hannover have collected three wins and a draw in their last four games to move to 44 points, in third place ahead of Bayern Munich's late kick-off
After three straight wins, St Pauli suffered their second consecutive defeat to remain on 28 points.
St Pauli had the first chance of the game after 12 minutes but Hannover goalkeeper Ron-Robert Zieler was able to grab Jan-Philipp Kalla's shot.
Hannover nearly grabbed the lead just three minutes later with Lars Stindl turning in from the right side and striking from 22 yards which bounced off the right post.
The game did not have many highlights but St Pauli keeper Thomas Kessler stopped Jan Schlaudraff's attempt just after the hour mark and then saved Mohammed Abdellaoue's rebound shot.
St Pauli's Fabian Boll headed wide left in the 72nd minute and Matthias Lehmann blasted over the bar from the edge of the area 11 minutes later.
Hannover finally got on the scoreboard in the 89th minute from a set-piece with Sergio Pinto's corner from the left side being headed home just inside the near left post by Schulz.