BARCELONA, Spain (AP) -- Cristiano Ronaldo got the better of Lionel Messi on Tuesday, scoring twice to lead Real Madrid to a 3-1 win at Barcelona and a spot in the Copa del Rey final.
After the first leg of their semifinal ended 1-1, Madrid neutralized Barcelona's passing game and counterattacked to perfection at the Camp Nou to hand its archrival its first home loss in any competition since last April.
It was also a second straight cup setback for the Catalan club, which is running away with the Spanish league but lost 2-0 at AC Milan in the first leg of its Champions League last-16 matchup.
While Messi had a quiet night, Ronaldo scored for a sixth straight visit to Camp Nou when he earned and converted a penalty in the 13th minute. Ronaldo hit again on the break in the 57th before Raphael Varane got his second goal of the series in the 68th.
Jordi Alba pulled a late goal back for defending champion Barcelona, but it was much too late to prevent Madrid from going through 4-2 on aggregate.
Madrid will play either Atletico Madrid or Sevilla in the cup final on May 18.
For Barcelona, it was their worst defeat to Madrid since losing 4-1 at the Santiago Bernabeu in 2008.
Barcelona suffered the same problems it had against Milan, unable to convert its better share of possession into goals, while its defense again proved brittle as it allowed goals for the 12th straight match.
Barcelona was again without coach Tito Vilanova, who is still undergoing treatment in New York after having a second tumor in two years removed from his throat in December.
Barcelona, which was again led by assistant coach Jordi Roura, has five wins, three draws and three losses since mid-January.
It faces Madrid again on Saturday in another "clasico," that time away in the league. Barcelona already has a firm grip of that title, with a 12-point lead atop the standings and with defending champion Madrid even further back.
LIVERPOOL, England (AP) -- Everton reached the quarterfinals of the FA Cup by beating Oldham 3-1 on Tuesday, ending the third-tier club's memorable run with a routine victory at Goodison Park.
Oldham ousted Liverpool 3-2 in the previous round and then drew 2-2 with Everton at home 10 days ago.
But David Moyes' team dominated from the start in the replay, and Kevin Mirallas opened the scoring when he converted Darron Gibson's 15th-minute cross.
Former Everton player Jose Baxter almost pulled Oldham level through a lob that struck the post.
But Leighton Baines' penalty made it 2-0 in the 34th after Connor Brown handled, and Leon Osman added the third in the 62nd
Oldham's Matt Smith came off the bench to claim his fourth goal of the cup run two minutes later, but couldn't prevent Everton's smooth passage into the next round.
It will host Wigan in the quarterfinals.
FRANKFURT, Germany (AP) -- Freiburg conceded two goals inside the first four minutes, battled back with a man up to level the score from a last-gasp penalty and then clinched the winner in extra time to advance to the semifinals of the German Cup for the first time with a 3-2 victory in Mainz.
In the other quarterfinal on Tuesday, Wolfsburg won 2-1 at third-division Kickers Offenbach.
On Wednesday, Bayern Munich hosts defending champion Borussia Dortmund and Stuttgart plays second-division Bochum.
The game in Mainz began with the host team scoring in the second minute when Shawn Parker drilled home a ball played back by Chinedu Ede. Two minutes later, Mainz doubled the lead when Niki Zimling scored from the edge of the penalty area.
But the host team's defender Zdenek Pospech was sent off in the 65th for his second booking as Freiburg stepped up the pressure in the second half.
The reward came late in the match, when substitute Ivan Santini pulled one back for Freiburg and then drew the foul in the third minute of stoppage time that produced the penalty.
Daniel Caligiuri converted from the spot to send the match into extra time and then notched the winner in the 108th minute.
BOLOGNA, Italy (AP) -- Greece winger Lazaros Christodoulopoulos scored the winner in the 84th minute and Bologna came back from a goal down to beat visiting Fiorentina 2-1 Tuesday in the Appenine derby, which was postponed by two days due to snow.
Adem Ljajic had put Fiorentina ahead in the 27th, using an angled shot to finish off a counterattack for his third goal in two matches.
Marco Motta equalized for Bologna in the 58th by heading in a free kick from Alessandro Diamanti.
Christodoulopoulos, who joined Bologna on the final day of the January transfer window from Panathinaikos, decided the match with a shot from beyond the area after Fiorentina failed to clear.
Fiorentina remained tied for sixth with Catania, two points behind Inter Milan.
Bologna moved into a tie for 14th.