As much as the home side beguiled with their customary slick passing, they found it difficult to break down a Real side whose goalkeeper was in inspired form.
Messi was instrumental in Barcelona's early dominance, with the diminutive Argentine cutting inside Guti, forcing Casillas into a fine reflex save low to his right.
Fabio Cannavaro then had to produce a perfect sliding tackle to prevent Messi from unleashing a shot after he and Eto'o had exchanged a delightful one-two on the edge of the box.
Real kept close attention on the 21-year-old Messi, both legally and illegally, and consequently his influence lessened as the half went on.
Sergio Ramos and Royston Drenthe were both yellow carded for felling Messi, but for all their cynical tactics on the Barca number 10, Real were far from outplayed by the home side.
Real caught Barca unawares on the counter-attack on a number of occasions and had the best chance to break the deadlock when Drenthe was sent clear on goal only to shoot straight at the onrushing Victor Valdes.
After the break, Eto'o went close with a rasping volley from the edge of the box before the game burst into life when Michel Salgado conceded a penalty for a foul on substitute Sergio Busquets.
Samuel Eto'o missed a number of chances against his former club
However, Barca were once again unable to get the better of Casillas as the Spanish international keeper dived to his left to tip away Eto'o's spot-kick.
Two minutes later and Casillas was forced into a double save, first stopping a vicious 20-yard shot from Eto'o and then impressively preventing Messi from following up from 10 yards out.
Just as Real seemed to have succeeded in frustrating Barca, Eto'o made up for his profligacy with an easy tap-in and, waving his shirt above his head, the Cameroon international ran away towards the Barca dugout to celebrate scoring against his former club.
To cap the celebrations, Messi, who had been a peripheral figure in the second half, beat Casillas with the coolest of finishes, leaving Real's title hopes hanging by the finest of threads.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.