Spain midfielder Benat pounced on an error to score after 17 minutes and Jose Mourinho's team ran out of steam and ideas as they chased the game in the second half.
Real only lost two games and dropped 14 points on their way to the title last season, but have already tasted defeat three times in 13 games in the current campaign.
"We have taken a step backwards in trying to cut the points gap," captain Iker Casillas told Spanish radio. "It has been a tough blow."
Mourinho congratulated Betis for their battling display and made his customary attacks on the referee and the calendar, but played down the significance of the result on the title race.
"Last year we were 10 points clear in March, we drew a couple of games and the league opened up," Mourinho told a news conference.
"Tomorrow we will probably be 11 points behind. We aren't optimistic or pessimistic. It's tough."
Betis, stung by a humiliating 5-1 rout at Sevilla in the city derby last weekend, looked to make amends in front of their fans with a high-tempo start against Real.
Betis pressured the visitors and took the lead when Alvaro Arbeloa's miscued clearance reached Benat who skipped past Sami Khedira and fired a low shot past Casillas from the edge of the area.
Madrid were making little headway, and Mourinho gambled with a double change at the break, throwing on Luka Modric and Kaka in place of midfield duo Mesut Ozil and Khedira.
Karim Benzema had an effort unfairly ruled out for offside, but after a strong start to the second half Real wilted and Betis always looked dangerous on the counter.
Betis climbed to fifth with 22 points, behind Malaga on goal difference after the Costa del Sol side returned to winning ways with a 4-0 rout at home to a desperately poor Valencia.
Francisco Portillo, Javier Saviola, Roque Santa Cruz and Isco were all on target as Manuel Pellegrini's side notched their first win in November.
Malaga laboured to make the most of Portillo's superb eighth-minute curler on a bumpy pitch at the Rosaleda.
They squandered a host of chances before Argentine Saviola struck a deflected second in the 74th minute, and Paraguayan substitute Santa Cruz followed up soon after. Midfielder Isco fired in a long-range fourth at the end.
Valencia, who are 10th with 18 points, qualified for the last 16 of the Champions League during the week by battling back with 10 men to draw 1-1 at home to Bayern Munich but it appeared to have taken its toll.
They were kept in the game by goalkeeper Diego Alves until the last 15 minutes, when a second yellow card for defender Adil Rami contributed to their late collapse.
"Malaga were much better. We were horrible today," Valencia coach Mauricio Pellegrino told a news conference.
Earlier, exciting young Brazilian forward Leo Baptistao was the difference as Rayo Vallecano ran out 2-0
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1