QPR 0 Bournemouth 1
Dominic Solanke’s 18th goal of the season gave Bournemouth a 1-0 victory at QPR and put them top of the Sky Bet Championship.
It was the Cherries' first win in six matches and took them above promotion rivals Fulham while Rangers ended the match with 10 men after Andre Dozzell was sent off in the final moments.
Solanke struck four minutes before half-time after Sam Field was adjudged to have fouled Jefferson Lerma — a decision by referee Keith Stroud which incensed the home fans.
The resulting free-kick was swung in from the left by Junior Stanislas and Solanke flicked a header beyond Seny Dieng and into the far corner of the net.
Solanke should have opened the scoring on the half-hour mark but was guilty of a glaring miss. A neat build-up culminated in Philip Billing crossing from the left for the striker, who contrived to head over from five yards out.
QPR had plenty of early possession but Dieng was the busier keeper in the first half.
Stanislas, starting for Bournemouth for the first time since August, twice tested Dieng, who kept out his low shot and pushed over his free-kick as the visitors threatened before eventually taking the lead when Solanke atoned for his earlier error.
Jaidon Anthony was guilty of an even more astonishing miss shortly after coming on as a second-half substitute.
Jack Stacey’s low cross from the right evaded Solanke and dropped to Anthony at the far post but, with the goal at his mercy and Dieng stranded, he scooped the ball wide of the target.
QPR boss Mark Warburton made an attacking double substitution with 20 minutes remaining, sending on Albert Adomah and striker Andre Gray.
Veteran wideman Adomah caused Scott Parker’s side some problems on the right flank as the hosts pushed forward in search of an equaliser.
However, Rangers struggled to create clear-cut chances and their defeat means they remain seventh in the table.
They missed Ilias Chair in the second half after the playmaker, who is due to join the Morocco squad for the Africa Cup of Nations, was withdrawn at half-time having suffered a knock.
Bournemouth remained a threat on the counter-attack and Dieng produced late saves to deny Solanke and Ryan Christie.
There were bad-tempered scenes in stoppage time when players from both teams became involved in a melee after Solanke tangled with Yoann Barbet. Dozzell's involvement in it resulted in him being given a second yellow card.
Derby 1 West Brom 0
A bizarre goal by Colin Kazim-Richards saw Derby put their takeover uncertainty to one side and beat West Brom 1-0 at Pride Park.
Kazim-Richards' first League goal since April made it back-to-back wins for Wayne Rooney's team for the first time since February, after the substitute punished a dreadful mix-up between Cedric Kipre and goalkeeper Sam Johnstone.
The goal was Derby’s only effort on target but it was enough to bloody the nose of another leading light after they beat Bournemouth and drew with leaders Fulham.
And it came after West Brom, who could have briefly gone second with a win, had dominated the first half — only to waste chances.
Derby's prospective takeover by US businessman Chris Kirchner was called off on Christmas Eve, with the club's administrators saying an announcement on an alternative preferred bidder is "imminent".
The visitors were gifted the first chance. A poor kick by Ryan Allsop saw Grady Diangana drive too close to the Derby keeper.
The Rams' first chance saw Jason Knight let fly from 20 yards but his shot clipped a team-mate and sailed a few inches over the bar.
West Brom looked the more likely scorers, albeit mostly from set plays.
Jake Livermore's shot was deflected wide off Richard Stearman, Cedric Kipre slid in at the far post as Liam Thompson hacked clear but Allsop smothered after Conor Townsend flicked on Adam Reach's free-kick.
Reach headed straight at Allsop after Kyle Bartley headed Darnell Furlong's corner back into the danger area, then Allsop smothered Callum Robinson's low shot after Livermore put the forward through.
Albion had the ball in the net in the 53rd minute when Reach’s free-kick was flicked home by Kyle Bartley, but the offside flag went up immediately.
Derby made a double substitution in an effort to force the issue in the 57th minute as Kazim-Richards and Ravel Morrison replaced Luke Plange and Sam Baldock.
The changes had an immediate effect as the Rams made the decisive breakthrough in bizarre fashion a minute later.
Kipre nodded a high ball towards Johnstone, who had come out of the penalty area to deal with it. He headed it straight into the path of Kazim-Richards, who side-footed into the empty net from 25 yards.
Bartley sent a flicked header straight at Allsop from Furlong’s long throw-in as Albion tried to hit back.
Matt Clarke had a golden chance to equalise when he was presented with an unmarked header from Kipre's cross — but he could only nod over the bar.
Substitute Jordan Hugill then wasted another chance for the Baggies when he side-footed wide from fellow substitute Tom Fellows' cross.
In the dying seconds, Bartley’s header was brilliantly tipped over by Allsop from Robinson’s cross.