Dan Ndoye scored the winning goal in the 82nd minute for Bologna, propelling them above Milan into sixth place with 44 points. This victory came after finally playing their postponed match, putting them five points behind Juve.
"We still believe (in qualification), there are a lot of games left to play, teams can drop points and we just have to do our job which is to win matches," said Milan goalscorer Rafael Leao.
Switzerland attacker Ndoye, who netted moments after Nicolo Casale thumped a header off the post, completed the comeback for Bologna after Leao had put Milan ahead just before half-time.
Milan were sluggish after the break and Santiago Castro had Bologna level in the 48th minute when he forced home a Giovanni Fabbian knockdown which Milan insisted was preceded by a handball.
The away side never recovered and were caught napping at a throw-in for Ndoye's winner, which came after Nicolo Cambiaghi span Alex Jimenez and whipped in a perfect low cross.
Listen to the latest songs, only on JioSaavn.com
Seven-time European champions Milan host Lazio on Sunday night which might be their last chance to stay in the fight for a place in the continent's elite club competition.
Advertisement
(Except for the headline, this story has not been edited by staff and is published from a syndicated feed.)