Wycombe ended Bristol City's 19-game unbeaten run and earned their first win in four with a 2-1 home victory thanks to second-half goals from Roger Johnson and a Steve Brown penalty.
City had struggled to impose themselves in a lame first half, although home goalkeeper Frank Talia denied City's leading scorer Scott Murray three minutes before the break with a fine diving save from close range.
Johnson put the Chairboys ahead four minutes into the second half, and the visitors found themselves 2-0 down with 22 minutes left after defender Danny Coles had been adjudged to have pulled down Jonny Dixon in the penalty area. Brown made no mistake in firing the ball home from the spot.
Coles should have reduced City's arrears 11 minutes from time, rising unmarked to meet Brian Tinnion's cross but only managing to send his clear header over the crossbar.
City were given a lifeline when the referee ruled home defender Keith Ryan had handled the ball in the area and Tinnion sent Talia the wrong way from the spot to give them a consolation goal.