Juventus -- who lost 2-1 at SPAL on Saturday as they focused on next week's Champions League game against Ajax -- needed just a point to seal an eighth consecutive Serie A title.
They would have if Carlo Ancelotti's second-placed Napoli failed to beat Chievo, and it would have been a new record of winning with six games to spare.
But towering Senegalese defender Koulibaly scored either side of Arkadiusz Milik's strike for his first league goals this season to put Napoli 17 points behind Juventus.
Massimiliano Allegri's side will have to wait at least until next weekend at home against Fiorentina to seal the Scudetto with a record-equalling five matches remaining.
"This victory takes a bit of weight off our shoulders," said Ancelotti, ahead of next week's Europa League quarter-final, return leg game against Arsenal where they trail 2-0.
Koulibaly headed in the opening goal in the 15th minute with Milik adding a second on 64 minutes.
Koulibaly added a third with nine minutes left for the first double of his professional career, before captain Cesar pulled one back for Chievo just before the final whistle.
"There has been a lot of fear and tension. After Milik's goal we loosened up a bit," said Ancelotti whose side had also gone two league games without a victory.
"We are angry. We want to show another face of Napoli," added Koulibaly.
Chievo -- who had been deducted three points early in the season for false accounting -- return to Serie B after 11 straight years in the top flight.
Inter Milan consolidated third position with a 3-1 win over second-from-bottom Frosinone, to move five points ahead of city rivals AC Milan, who are fourth.
Radja Nainggolan headed in the opener on 19 minutes with Ivan Perisic converting a penalty eight minutes before the break and Matias Vecino adding a third three minutes into injury time.
Torino's hopes of Champions League football next season diminished with a 1-1 draw against nine-man Cagliari in Turin, as Sampdoria rekindled their Europa League ambitions with a 2-0 derby win over 10-man Genoa.
Simone Zaza opened the scoring for Torino on 52 minutes before seeing red with Cagliari also having two players sent off late on.
Italian forward Zaza was dismissed in the 74th minute for arguing with referee Massimiliano Irrati over a free-kick awarded against him.
Cagliari drew level a minute later when Leonardo Pavoletti headed in a Luca Cigarini cross, with the goal confirmed following a long VAR review.
The Sardinian side saw Luca Pellegrini and Nicolo Barella both receive second yellow cards in the closing stages.
Torino stay seventh, five points off AC Milan who occupy the final Champions League spot, with Cagliari in 12th.
In Genoa, veteran striker Fabio Quagliarella provided the cross for Gregoire Defrel's opener after less than three minutes and then added a second from the penalty spot eight minutes after half-time to go top of the Serie A scorers' chart with 22 goals.
Genoa played most of the second half a man down after Davide Biraschi was dismissed for handball.
In Tuscany, Vincenzo Montella's first game as Fiorentina coach ended with a goalless draw at home against relegation-candidates Bologna, pushing their winless run to eight games.
Fiorentina, in 10th position, are 12 points off the Europa League places.