Match ends, Burnley 2, Queens Park Rangers 0.
Danny Ings scored twice as Burnley took the honours in the top-of-the-table Championship meeting against QPR.
Burnley were the better side in the first half but QPR went close when Junior Hoilett had a shot blocked and Joey Barton sent an effort wide.
However, Ings played a one-two with Sam Vokes and fired past keeper Robert Green to put the hosts ahead.
Ings then scored a penalty after being fouled by Barton to end QPR's unbeaten league record and keep Burnley top.
Barton was constantly booed by the home side's fans and also appeared to have objects thrown at him during the match.
QPR's misery was compounded as they dropped down to third place after Leicester overtook them into second following a 2-1 win over Bournemouth.
Burnley had started the stronger but there was a bizarre incident after 15 minutes when Clarets mascot Bertie Bee was sent off after an exchange with the linesman.
In terms of goalmouth action, QPR centre-back Clint Hill had to head behind after Kieran Trippier's long range free-kick had been fumbled by Green.
Barton sent a shot just wide before Ings and Vokes combined to allow the former to slot Burnley into the lead.
QPR missed a chance to level when centre-back Richard Dunne headed over from six yards and Ings completed his side's win when he scored from the penalty spot for his 13th goal of the season.
Burnley manager Sean Dyche:
"I'm delighted with the tactical framework of the team, the effervescence of the team but most of all the quality of the team, which I was thought was excellent.
"The first goal was fit to grace most pitches, the pace of it and the quality of the finish.
"I thought we played really well first half and had some good half chances, but I said to the players at half-time that they'd have to go even harder because QPR are not an easy group of players to crack.
"However, to deliver that performance and win in that fashion, it's right up as one of my best days here."
QPR assistant manager Kevin Bond:
"Credit to Burnley they stopped us from playing, which we knew they'd always do because they work extremely hard.
"I'm just disappointed we weren't able to play through that initial pressure. In the end, when we did get on the ball we then gave it away.
"We weren't able to play from the back or play through midfield as much as we would've liked and that is disappointing.
"It was always going to be a tight game and one goal was probably going to be enough. Our handling of the ball throughout the game wasn't as good as we'd expect it to be."
- 14JonesBooked at 33mins
- 26TreacyBooked at 43minsSubstituted forStockat 90+4'minutes
- 8MarneySubstituted forEdgarat 83'minutes
- 2SimpsonBooked at 77mins
- 20HenrySubstituted forJenasat 68'minutes
- 5DunneBooked at 39mins
- 36O'NeilSubstituted forChevantón Espinosaat 73'minutes
- 17BartonBooked at 26mins
- 19KranjcarSubstituted forPhillipsat 73'minutes
- 23HoilettBooked at 37mins
- 18Chevantón Espinosa
- Simon Hooper
- Shots on Target
Second Half ends, Burnley 2, Queens Park Rangers 0.
Foul by Javier Chevantón (Queens Park Rangers).
Brian Stock (Burnley) wins a free kick in the defensive half.
Substitution, Burnley. Brian Stock replaces Keith Treacy.
Joey Barton (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Michael Kightly (Burnley).
Goal! Burnley 2, Queens Park Rangers 0. Danny Ings (Burnley) converts the penalty with a right footed shot to the bottom left corner.
Penalty conceded by Joey Barton (Queens Park Rangers) after a foul in the penalty area.
Penalty Burnley. Danny Ings draws a foul in the penalty area.
Substitution, Burnley. David Edgar replaces Dean Marney because of an injury.
Delay over. They are ready to continue.
Delay in match Dean Marney (Burnley) because of an injury.
Attempt blocked. Charlie Austin (Queens Park Rangers) left footed shot from the centre of the box is blocked. Assisted by Junior Hoilett.
Hand ball by Charlie Austin (Queens Park Rangers).
Danny Simpson (Queens Park Rangers) is shown the yellow card for a bad foul.
Foul by Danny Simpson (Queens Park Rangers).
Michael Kightly (Burnley) wins a free kick in the defensive half.
Substitution, Queens Park Rangers. Matthew Phillips replaces Niko Kranjcar.
Substitution, Queens Park Rangers. Javier Chevantón replaces Gary O'Neil.