Benzema rattled the crossbar with his 79th-minute spot-kick after he had been fouled by David Garcia, who was sent off for his pains.
However, the 10 men, who had trailed to Vinicius Junior's 42nd-minute goal, levelled through Kike Garcia five minutes after the break and held on to claim a creditable 1-1 draw at the Bernabeu Stadium which left Real level on points with Barcelona at the top of the table.
Alexander Sorloth's double helped Real Sociedad to victory in an eight-goal thriller at Girona.
Sociedad trailed 3-2 with 24 minutes remaining despite Sorloth's efforts, but goals from Brais Mendez, Martin Zubimendi and Takefusa Kubo eventually saw them home.
Valencia's Eray Comert struck six minutes into stoppage time to snatch a 2-2 draw at Espanyol.
The home side led 2-1 after goals from Joselu and Sergi Darder had overhauled Gabriel Paulista's 53rd-minute effort, but Comert levelled deep into added time after both Marcos Andre and Martin Braithwaite had received their marching orders.
Gabriel Veiga fired Celta Vigo to a 1-0 win over Real Betis, who played for 70 minutes with only 10 men after Luiz Felipe had been dismissed.
Juventus secured a first league win in four attempts by seeing off Bologna 3-0 in Turin.
Filip Kostic, Dusan Vlahovic and Arkadiusz Milik did the damage on the night, although Juve remain four points shy of the top four.
Sergej Milinkovic-Savic scored twice as high-flying Lazio eased to a 4-0 victory over Spezia despite Ciro Immobile's early penalty miss with Mattia Zaccagni and Alessio Romagnoli also on the scoresheet, while Ademola Lookman's 59th-minute strike was enough to hand Atalanta the points against Fiorentina.
Goals from Armand Lauriente, Andrea Pinamonti, Kristian Thorstvedt, Abdou Harroui and Janis Antiste eased Sassuolo to a 5-0 win over Salernitana, while Matteo Pessina, Gianluca Caprari and Stefano Sensi were on target for Monza as they beat bottom-of-the-table Sampdoria 3-0.
Penalties from Daniel Ciofani and Gabriel Strefezza meant the clash between Lecce and Cremonese ended 1-1.
Theo Le Bris came off the bench to ensure 10-man Lorient maintained their pursuit of Ligue 1's top two Paris St Germain and Marseille with a 2-1 victory over Lille.
The home side, who had taken an early lead through Bafode Diakite's own goal, saw Jonathan David level after Dango Ouattara had been dismissed for a second bookable offence, but Le Bris came to the rescue with three minutes remaining.
Lens needed an 82nd-minute penalty from Florian Sotoca to beat Lyon 1-0, while Wissam Ben Yedder's hat-trick eased Monaco to a 4-1 victory over Nantes.
After Breel Embolo had given the home side a second-minute lead, Ben Yedder found the back of the net on six and 28 minutes before converting a second-half penalty with Caio Henrique's own goal all Nantes had to show for their efforts.
Ten-man Toulouse held out to beat Montpellier 4-2 despite playing the final 30 minutes with only 10 men.
The home side responded to Nicolas Cozza's seventh-minute strike with goals from Stijn Spierings, Zakaria Aboukhlal, Fares Chaibi and Brecht Dejaegere before Mikkel Desler's red card, but although Elye Wahi pulled one back, that was as good as it got for the visitors.
Ajaccio remain at the foot of the table after conceding twice at the death to lose 3-1 at home to Clermont, while Jackson Porozo's last-minute equaliser snatched a 2-2 draw for Troyes at home to 10-man Reims and M'Baye Niang's 86th-minute penalty handed Auxerre a 1-1 draw with Brest.
Andre Hahn headed Augsburg to a 3-2 victory at Schalke despite Mergim Berisha's sending-off.
Ermedin Demirovic's early double looked to have put the visitors in the driving seat, but Simon Terodde and Tom Krauss dragged them back into before Hahn had the final say.
Dodi Lukebakio's equaliser ensured Hertha Berlin's home clash with Hoffenheim, who had taken the lead through Andrej Kramaric, finished 1-1.