Matias Lui put the hosts ahead in the 17th minute with a header at the back post.
Valerio Mantovani equalised for Ascoli just seven minutes later with a header of his own, this time sending the ball cross goal and into the far post.
Eric Botteghin put the visitors ahead in the 37th minute with another header into the far post, this time from a free kick out wide whipped in by Raffaele Celia.
Giuseppe Bellusci scored an own goal that brought Catanzaro level in the 81st minute when he slid towards goal to intercept a cutback, but instead did the home side’s finishing for them.
Five minutes later, Pietro Iemmello broke Ascoli hearts when he got on the end of Alfredo Donnarumma’s flick-on header from a corner to head into an empty net.
Catanzaro are sixth while Ascoli are 17th and in the relegation-playoff zone.
Want to see every Serie A and Serie B match live? Click here.