Chievo had won four of its past five league games but found itself behind in the 12th minute when Panagiotis Kone lost his marker and ran into space by the penalty spot to head home Alessandro Diamanti's corner.
Chievo upped the pressure and could have leveled four minutes from halftime as first Federico Agliardi made a great save to tip Cyril Thereau's free kick around the post, before it had a penalty appeal turned down when Bostjan Cesar appeared to have his shirt tugged by Nicolo Cherubin.
However, Bologna doubled its lead moments later. Diego Perez stole the ball off Thereau on the halfway line and threaded a wonderful pass through for Gilardino, who chipped it over Chievo goalkeeper Stefano Sorrentino.
Chievo had kept clean sheets in four of its last six Serie A games but fell further behind in the second half when Cesar failed to clear a corner and, in a goalmouth scramble, Gilardino bundled the ball home.
Alberto Paloschi could have got one back for Chievo late on but he had a goal ruled out for offside before striking the post.
Manolo Gabbiadini, who also hit the post, scored Bologna's fourth a minute from fulltime.
Bologna is provisionally five points above the relegation zone.