Real struggled to create clear-cut chances in the first-half while the visitors produced several scares.
Mark Gonzalez could have fired Betis in front when he capitalized on a defensive mix-up inside the area but blasted poorly wide with the goal at his mercy.
David Odonkor had another chance when his header from a corner was denied by the crossbar.
Real coach Bernd Schuster introduced Arjen Robben and Robinho early in the second-half and his substitutions bore fruit.
Dutch winger Robben sidestepped a defender and fed Raul, who was brought down by David Rivas inside the area as the referee pointed to the spot.
The in-form skipper stepped-up to convert the penalty and give Real the lead six minutes past the hour mark
Brazilian striker Baptista ensured the victory five minutes from time with a spectacular overhead kick that went into the back of the net.