Despite the narrow scoreline, it was a dominant performance from Uruguay, who had the vast majority of chances but struggled to break down Paraguay's stubborn defence.
Uruguay were also lacking a bit of quality in front of goal and had to rely on Cavani's 21st-minute spot-kick for the win.
The best early chances fell to Giorgian de Arrascaeta before Nahitan Nández was bundled over in the box for an 18th-minute penalty, dispatched by Cavani.
The Manchester United striker made way for Luis Suarez in the 68th minute, but the Atlético Madrid forward was also frustrated in front of goal.
With a narrow lead, Uruguay conceded a late free-kick near their goal that gave Paraguay hope of a late draw, but the effort came to nothing.
Group A winners Argentina, who beat Bolivia 4-1, will face Ecuador in the last eight, while host nation Brazil will take on Chile in Rio de Janeiro on Friday. Paraguay play Peru on the same day.