Dani Schahin gave the hosts the lead before half time, but Mame Diouf, who wasted several big chances, brought the Reds level in the 69th minute.
The game could then have gone either way before Ilso stepped up to curl in a 25-yard free-kick in the 83rd minute to send the 48,000 fans in the Dusseldorf Arena wild with joy.
Hannover striker Jan Schlaudraff's 100th Bundesliga game ended earlier than expected when he left the field injured in the 22nd minute.
His departure put more responsibility on Diouf, who spurned the chance to put the visitors in front n the 25th minute.
He pounced on a very poor back pass from Adam Bodzek and touched the ball past Fabian Giefer, but also just past the far post.
Fortuna took their first big chance of the game, on the other hand, with Schahin meeting Leon Balogun's cross to head the hosts in front in the 39th minute.
Hannover showed signs of improvement in the second half and Diouf brought them level in the 69th minute when he controlled Manuel Schmiedebach's cross with his chest and then beat Giefer with an unstoppable volley.
Diouf wasted a much easier chance in the 80th minute, though, when he shot straight at Giefer with the whole of the goal to aim for.
The miss was punished three minutes later when Ilso netted the winner.
He curled a direct free-kick into the top right-hand corner with Ron Robert Zieler not even making an attempt to reach a ball he felt his wall was covering.