Madrid, who struck the crossbar through Ferland Mendy in the second half, missed the chance to leapfrog Barcelona at the top of the table and have lost three of their last four games in all competitions.
Vinicius Junior was first to threaten, firing just wide from inside the penalty area in the 16th minute, while Edgar Gonzalez and Marc Bartra both headed off target for Betis following set-pieces.
Fekir provided the assist following a corner and Sidnei crashed home an unstoppable rising shot past Courtois into the top corner.
But the Brazilian centre-half was culpable as the visitors drew level in first-half stoppage time.
Marcelo drew the foul from Sidnei inside the area and Benzema stepped forward to convert the subsequent spot-kick, sending Betis goalkeeper Joel Robles the wrong way for his 14th league goal of the season and 19th in all competitions.
Betis started the second half well and Los Blancos were given a huge let-off in the 55th minute after a rapid counter-attack from the home side.
Courtois was left exposed in a two-on-one but after Joaquin rounded the keeper, the Betis skipper failed to turn the ball into an empty net.
Betis continued to look the more likely to find a second goal and Fekir's dangerous low cross was snaffled by Courtois.
The visitors picked up the pace midway through the second half and went close to taking the lead.
Luka Modric's sizzling effort from outside the box forced Robles into a sprawling save and substitute Ferland Mendy's follow-up hit the crossbar.
Andres Guardado then volleyed wide for Betis before cashing in on Madrid skipper Sergio Ramos' error to regain the lead.
Ramos sent his pass out of defence straight to Guardado and he slipped in Tello, who coolly slotted a low finish beyond Courtois.
Madrid threw caution to the wind in the closing stages. Ramos' header across the face of goal was well claimed by Robles.
The visitors poured forward in stoppage time and Benzema went close to snatching a point for his side but fired wide from 20 yards.