Bologna är årets succélag i Serie A och har säkrat spel i Champions League, men tampas med Juventus och Atalanta om tredjeplatsen i ligan.
Hemma mot "Juve" tog man ledningen efter två minuter. Riccardo Calafiori, vänsterbacken som skolats om till mittback, satte 1-0.
I sin första match från start nickade 19-årige Santiago Castro in 2-0 i den elfte minuten, innan Calafiori lättade in 3-0 i början av andra halvlek. Då såg Juventus slaget ut.
Men de svartvita, som numera tränas av Paolo Montero efter att Massimiliano Allegri fått sparken, reste sig sista kvarten.
Först reducerade Federico Chiesa till 3-1 i den 76:e minuten, innan Arkadiusz Milik satte 3-2 på frispark i 83:e.
Bara minuten senare dundrade Kenan Yildiz in 3-3 från distans. Tre mål på åtta minuter, där det första kom direkt efter att Calafiori bytts ut.
Juventus och Bologna delar därmed på poängen i ösregnet. Båda står på 68 poäng, två före Atalanta, med en omgång kvar.