A late goal from Sergio Pellissier earned Chievo a third successive victory in Serie A and ended Roma's own run of four wins on the trot.
A draw seemed the most likely outcome at the Stadio Marc'Antonio Bentegodi, but Pellissier struck three minutes from time to ensure the points would stay in Verona.
The result sees Roma lose ground at the top while Chievo continue to head the right way up the standings.
The home side made the stronger start with Cyril Thereau forcing an early save from Mauro Goicoechea.
Roma responded with Miralem Pjanic firing wide of the right post before Chievo goalkeeper Stefano Sorrentino saw his first action with a brilliant save to palm away a low shot from Pablo Osvaldo.
The visitors grew in confidence as the half wore on but were unable to make their many openings count, with Francesco Totti shooting over from a favourable position before the same player skied another effort into the crowd.
Alessandro Florenzi then tried his luck for Roma six minutes before the interval but also turned Pjanic's free-kick over the net.
Chievo had re-organised by the start of the second half and Goicoechea was called upon to make another fine stop from Alberto Paloschi's close-range header.
Another chance followed after 57 minutes, this time for Gennaro Sardo but the Roma goalkeeper was again equal to the challenge.
Play quickly returned to the other end of the pitch and Pjanic curled in a cross from the right for Osvaldo, who could only direct his header over the bar.
The Roma forward had the chance to make amends after 77 minutes but again failed to find the target from a central position inside the box.
And Chievo made the most of the miss 10 minutes later when Pellissier beat the offside trap before rounding Goicoechea and finishing into an empty net.