Bologna came back from a Zito Luvumbo opener and missed a penalty with Riccardo Orsolini before Giovanni Fabbian made the most of a Cagliari howler to snatch victory.
Both teams had one point from the opening two rounds and were still trying to settle after a very busy summer on the transfer market. Adama Soumaoro and new signing Alexis Saelemaekers were injured for the hosts, with Musa Barrow, Joaquin Sosa and Charalampos Lykogiannis left behind. The Sardinians threw Andrea Petagna straight into the mix, as Leonardo Pavoletti, Gianluca Lapadula, Marko Rog, Marco Mancosu, Gaston Pereiro and Elio Capradossi were sidelined.
Jesper Karlsson almost scored a stunner within seven minutes, unleashing a long-range rocket that cracked against the woodwork.
However, Cagliari took the lead when Zito Luvumbo spun away from Sam Beukema onto a long Mateusz Wieteska pass and fired in a left-foot angled drive for his maiden Serie A goal.
Boris Radunovic made a double save on Karlsson and the Joshua Zirkzee follow-up, while Jhon Lucumi crucially prevented Petagna nodding in the Tommaso Augello cross.
Bologna were pushing more after the break and equalised when Victor Kristiansen provided the assist in a well-worked one-touch move down the left, sending Zirkzee through for an angled drive.
Radunovic was right behind Lucumi and Dan Ndoye attempts, then a penalty was awarded for Alessandro Di Pardo charging down a Kristiansen cross with an arm. However, Orsolini stepped up and smashed the spot-kick against the crossbar.
Sulemana volleyed over at the back post from a Luvumbo cross, but Bologna were gifted the winner when Radunovic fumbled a Kristiansen shot, allowing Fabbian to tap in from six yards. The former Inter youth product had just come off the bench moments earlier.
Zirkzee had the ball in the net again in stoppages after a sensational nutmeg, but was flagged offside.
Bologna 2-1 Cagliari
Luvumbo 22 (C), Zirkzee 59 (B), Fabbian 90 (B)
Missed penalty: Orsolini 74 (B)
Player statistic
22' | Zito Luvumbo (Assist: Mateusz Wieteska) | |||
Lewis Ferguson | 40' |
Joshua Zirkzee (Assist: Victor Kristiansen) |
59' | |||
70' | Ibrahim Sulemana | |||
Riccardo Orsolini | 75' | |||
Giovanni Fabbian | 90' | |||
90+3' | Antoine Makoumbou |