Match ends, Juventus 1, Bologna 0.
Juventus closed in on a third successive Serie A title as a narrow home win against Bologna retained their eight-point lead at the top of the table.
Second-placed Roma beat fourth-placed Fiorentina 1-0 later on Saturday, to leave Juve two wins from the title.
Bologna, still needing points for survival, defended solidly against heavy home pressure.
But Paul Pogba's low drive broke the deadlock after the break.
Juventus have now won all of their 17 home league matches this season and will become the first Italian side to ever break the 100-point barrier if they win their last four Serie A games.
Even without a Roma slip-up, wins in Juve's next two games - at struggling Sassuolo and at home to Europa League-chasing Atalanta - would secure them a 30th league title.
If Juve drop points against either of those sides, they could win the title when they visit Roma on 9 May.
Manager Antonio Conte's contract expires in June 2015 and the club are desperate to tie him down to a long-term deal.
Conte has been the architect of the Turin club's dominance since arriving at the club in 2011. They had just finished seventh in Serie A under Luigi Delneri and were still suffering the effects of the Calciopoli match-fixing scandal, which had seen them stripped of two titles and relegated to Serie B in 2006.
Juventus also have a Europa League semi-final with Portugal's league leaders Benfica on Thursday, with a place in the final at their Juventus Stadium in May up for grabs over the two legs.
The hosts dominated the first half but, with top scorer Carlos Tevez starting on the bench after injury, they were wasteful in front of goal, midfielder Paul Pogba twice having shots saved by goalkeeper Gianluca Curci.
Mauricio Isla was denied by Curci after the break as Juventus struggled to break down their dogged opponents, until Pogba struck clinically from 20 yards.
Radja Nainggolan's first-half strike was enough to give Roma victory in a tight match at Fiorentina.
Elsewhere AC Milan enjoyed a 3-0 home win over Livorno, their fifth straight victory. Mario Balotelli, Adel Taarabt and Giampaolo Pazzini were on target.
- 33IslaSubstituted forPadoinat 81'minutes
- 12GiovincoSubstituted forVidalat 89'minutes
- 5AntonssonBooked at 53minsSubstituted forLaxaltat 80'minutes
- 20Barreto da SilvaSubstituted forPaponiat 70'minutes
- 11FribergBooked at 74mins
- 24PazienzaSubstituted forAcquafrescaat 89'minutes
- Piero Giacomelli
- Shots on Target
Second Half ends, Juventus 1, Bologna 0.
Attempt blocked. Lazaros Christodoulopoulos (Bologna) right footed shot from the left side of the box is blocked.
Hand ball by Arturo Vidal (Juventus).
Attempt saved. Diego Laxalt (Bologna) header from the centre of the box is saved in the centre of the goal. Assisted by György Garics with a cross.
Attempt blocked. Robert Acquafresca (Bologna) right footed shot from the centre of the box is blocked. Assisted by Daniele Paponi with a cross.
Substitution, Bologna. Robert Acquafresca replaces Michele Pazienza.
Substitution, Juventus. Arturo Vidal replaces Sebastian Giovinco because of an injury.
Delay over. They are ready to continue.
Delay in match Sebastian Giovinco (Juventus) because of an injury.
Attempt saved. Paul Pogba (Juventus) right footed shot from the centre of the box is saved in the bottom right corner. Assisted by Simone Padoin with a cross.
Foul by Angelo Ogbonna (Juventus).
Gianluca Curci (Bologna) wins a free kick in the defensive half.
Corner, Juventus. Conceded by Erik Friberg.
Paul Pogba (Juventus) wins a free kick in the defensive half.
Foul by Archimede Morleo (Bologna).
Foul by Fernando Llorente (Juventus).
Frederik Sorensen (Bologna) wins a free kick in the defensive half.
Offside, Juventus. Kwadwo Asamoah tries a through ball, but Fernando Llorente is caught offside.
Attempt saved. Lazaros Christodoulopoulos (Bologna) right footed shot from outside the box is saved in the centre of the goal. Assisted by Erik Friberg.