Barkley picked up possession in his own half, exchanged passes with Romelu Lukaku before driving at QPR's defence and unleashing an unstoppable left-foot drive into the top corner for his first goal of an injury-plagued season.
Kevin Mirallas doubled the lead after 43 minutes with a wickedly-deflected free kick. Steven Naismith headed a third eight minutes after the break before Bobby Zamora notched a late consolation for Rangers.
Everton's first league victory since Nov. 22 lifted them above local rivals Liverpool into 10th place on 21 points while QPR, without a point away from home this season, remained 18th, four points above bottom club Leicester City.