Pedro filled in for Barcelona's missing star forwards by netting a hat trick in 10 minutes before setting up Cesc Fabregas twice as the visitors erased a two-goal deficit in a wild 5-2 win at Getafe on Sunday.
With Barcelona's strike-duo Lionel Messi and Neymar unavailable, Getafe surged forward from the start and stunned the visitors' shaky defense with two goals in 15 minutes. But Pedro led the fight back by scoring in the 34th, 41st and 43rd minutes to swing the match in Barcelona's favor before halftime.
Dani Alves returned from a monthlong injury but he Brazilian back looked rusty, Javier Mascherano was often out of position, and Gerard Pique conceded two unnecessary corner kicks -- the second of which led to Getafe's second goal.
After Pique had missed a chance for Barcelona, left back Sergio Escudero worked a one-two with Angel Lafita to speed by Dani Alves and give Getafe the 10th-minute opener.
Center back Lisandro Lopez was then completely unmarked to head in Pedro Leon's corner, leaving Barcelona coach Gerardo Martino to scratch his head and pace the touchline.
Pedro pulled the first goal back when Fabregas threaded a ball through for the forward to fire a looping strike that goalkeeper Miguel Moya touched but couldn't stop from going into the net.
Iniesta was next to find Pedro, who cut back to his right foot and unleashed an untouchable shot just inside the far post.
Pedro was helped by Getafe on his third goal. A defender flubbed in his attempt to clear Jordi Alba's low cross after Fabregas had played him wide, and instead laid the ball off for Pedro to pound it past Moya.
Pedro turned playmaker after halftime. He crossed for Fabregas to score his first goal in the 68th minute before provoking a penalty in the 72nd that Fabregas converted to secure the result.
Barcelona's entertaining victory ensured the defending Spanish champions retained their share of the league lead with Atletico Madrid two rounds ahead of their meeting in the capital.
Real Madrid needed a late goal by substitute Jese to earn a 3-2 victory at Valencia to stay in third place and five points behind their title rivals.
At Mestalla Stadium, Angel Di Maria blasted Real Madrid in front in the 28th minute when he controlled Marcelo's lobbed pass, dribbled between two defenders and drilled in a left-footed strike.
Juan Bernat picked out Pablo Piatti with a cross to head in the 34th-minute equaliser.
Cristiano Ronaldo put Madrid back in front with a header in the 40th for his 18th league goal of the season. But Valencia toughened their defense after halftime and defender Jeremy Mathieu fended off Sergio Ramos to head in a corner in the 62nd minute for Valencia's second goal.
Jese went on in the 73rd and nine minutes later he capped Madrid's buildup after Luka Modric spotted him on the right side by rifling a low shot between goalie Vicente Guaita and his near post.
Also Sunday, Athletic Bilbao beat Rayo Vallecano 2-1 at San Mames to strengthen their hold on fourth place.
Athletic Bilbao will be sitting comfortably in La Liga's top four over Christmas after Mikel Rico lashed home the second goal in the 66th minute, just moments after Alberto Bueno had levelled for a Rayo side who gave the hosts plenty to ponder.
The league takes a two-week break for the winter holidays from Monday.
Espanyol routed Real Valladolid 4-2 for their first win at home in four rounds.
Sergio Garcia got the ball rolling by scoring a penalty after five minutes and Christian Stuani doubled the lead half an hour later. Victor Sanchez made sure of the points with a third goal on 67 minutes, and Stuani got his second and the fourth of the day shortly afterwards.
With the three points in the bag the hosts began to relax, and Javi Guerra and Victor Perez each pulled goals back late on for Valladolid, but there was never any doubt as to how the match would end.
Celta Vigo salvaged a 1-1 draw at home with Osasuna after Lolo scored an own goal to cancel out teammate Emiliano Armenteros' opener.
Emiliano Armenteros gave Osasuna a 17th-minute lead with the woodwork preventing the hosts from going even further behind moments later.
Augusto Fernandez headed home an equaliser in the 34th minute and although both sides tested the opposition goalkeeper, there was no further score.
Information from The Associated Press and Press Association was used in this report.