Uruguay have won this tournament more than any other country but they have laboured so far this year, losing 1-0 to Argentina, drawing 1-1 with Chile and failing to shine against a Bolivian side whose last away win was 32 games ago in Myanmar.
They huffed and puffed through the first half in Cuiaba and needed a stroke of luck to take the lead five minutes before half time when Jairo Quinteros and Carlos Lampe combined to put through their own goal.
A low cross came into the six-yard box and stranded between Cavani and Luis Suarez, Quinteros was forced to take action but could only knock the ball onto the legs of Carlos Lampe and into the net.
Bolivia lost their first two games and were desperate to get some points on the board but although they were not overawed they were slow in breaking forward and no match for more their more wily opponents.
At the other end Uruguay had a host of chances, with Suarez and Cavani both spurning opportunities and the veteran Lampe once again in excellent form in the Bolivia goal.
Uruguay hadn't won since beating Colombia in a World Cup qualifier last November but Cavani guaranteed all three points with his first international goal since that game when he converted a sumptuous cross from Facundo Torres with 11 minutes remaining.
Substitute Maxi Gomez should have made it three in injury time but he side-footed wide in front of an open goal.
The result ended a five-game winless streak for Uruguay and ensures their place as one of the top four teams in Group A alongside the already qualified Argentina.
Bolivia now must beat Argentina in their final game and hope other results go their way to have any chance of progressing from a group that also features Chile and Paraguay.