The victory meant Barca, chasing their first title in three years, extended their lead over second-placed Real to seven points with four games left.
“We have taken a big step (to the title),” a beaming Guardiola told a news conference. “It’s a very sweet night winning at this stadium and in front of these fans.”
The defeat ended Real’s 18-match unbeaten league run, 17 wins and a draw, since they lost 2-0 at Barca in December. The Madrid club have won the league the last two years.
Real started “El Clasico” nervously and Sergio Ramos gave the ball away to Messi in a dangerous position in the first minute. The Argentina international squared to Xavi but the midfielder’s shot was easily smothered by keeper Iker Casillas.
Ramos redeemed himself when he skipped past Eric Abidal on the right wing and sent over a perfect cross for Gonzalo Higuain to nod superbly past keeper Victor Valdes in the 14th minute.
Real’s lead lasted four minutes, Henry bursting clear on the left and finishing coolly before captain Carles Puyol headed in a Xavi freekick to make it 2-1.
Dangerman Messi and Samuel Eto’o went close to extending the lead as Barca dominated possession before Xavi robbed Lassana Diarra in midfield and Messi raced on to the loose ball to slot home after 36 minutes.
Ramos headed in Arjen Robben’s whipped free kick in the 56th to briefly give the home fans hope but Barca always looked like adding to their tally and Henry, Messi and Gerard Pique completed the rout.
Guardiola picked his strongest side and the win will give the players a boost ahead of their Champions League semi-final second leg at Chelsea on Wednesday. The teams drew 0-0 at the Nou Camp in the first leg.
“It is certainly not going to hurt,” Guardiola said. “It’s going to put us in very good shape. We are going there to seal our place in the final.”
Real coach Juande Ramos said Barca deserved to win.
“We have lost a lot of the hope we had about winning the league,” he said. “We still have to put all our effort into the competition. Of course it’s difficult and much more difficult than before.”
Barca have 85 points from 34 Primera Liga matches and have scored a remarkable 100 goals. Real are on 78 points and Sevilla are on 60 in third spot after they won 2-0 at fifth-placed Villarreal.
Numancia hauled themselves off the bottom with a 2-0 victory over seventh-placed Malaga, their first win in six games.