Juventus showed one change from the Supercoppa Italiana triumph on Wednesday in Federico Bernardeschi, who replaced Federico Chiesa on the left-side of the attacking area.
The opener arrived 15 minutes in when a low drive from range by Arthur Melo wrong-footed Bologna goalkeeper Lukasz Skorupski before nestling into the net.
Skorupski kept the score-line down three minutes before the half-hour mark when he parried a curling strike near the area from Cristiano Ronaldo and the follow-up from Bernardeschi.
Bologna targeted a strong finish to the end of the first half, as a cutback from Musa Barrow teed-up Roberto Soriano who curled inches wide of the bottom-corner.
Adama Soumaoro entered for Lorenzo De Silvestri with Emanuel Vignato making way for Nicola Sansone as the visitors introduced a double substitution following the interval.
Juve nearly let in an own-goal two minutes from the break through the head of Juan Cuadrado, but goalkeeper Wojciech Szczesny came up with a spectacular save from point-blank range.
Soriano was in the thick of things again a little later when he cut in from the right to send a curling strike towards the bottom-corner, but Szczesny managed to palm away.
The Old Lady made it two inside the final 20 minutes after Weston McKennie towered in the centre of the six-yard area to head home a right-sided corner from Cuadrado.
Juventus had a chance to increase their tally late on through Ronaldo and a close-range strike from Adrien Rabiot, but Skorupski parried to see out the clash.