In a highly entertaining and topsy-turvy game, Chelsea took the lead through David Luiz in only the 11th minute before the hosts made it 2-0 when Hazard combined with Alvaro Morata.
But Aleksandar Kolarov's deflected effort five minutes before the break gave Roma the confidence they needed to launch a stunning comeback - which they did when Edin Dzeko scored twice within six second-half minutes to turn the game on its head.
But Hazard's 75th-minute header secured a point for Chelsea, who remain top of their Champions League group with seven points as Roma trail Antonio Conte's side by two points in second place in Group C.
Both teams came into the match in west London off the back of league defeats - with Roma being beaten 1-0 by Napoli while Chelsea were defeated 2-1 by rock-bottom Crystal Palace at Selhurst Park.
But despite Chelsea's lacklustre showing against Palace, they looked much improved against Roma - with Conte's side taking just 11 minutes to go into the lead through Luiz.
The Brazilian, playing in a more advanced midfield role in the absence of the injured N'Golo Kante, made a run forward and after being urged to shoot by the Chelsea fans, saw his resulting effort rebound off Juan Jesus and back out to him.
Luiz barely hesitated as the 30-year-old curled in a superb effort that flew past Alisson Ramses Becker and into the back of the net.
Hazard could have made it 2-0 nine minutes later but saw his low drive go just wide of the far post as Chelsea appeared far more organised and, indeed, relaxed than against Roy Hodgson's side four days earlier.
However, Roma hit back through Radja Nainggolan - the midfielder Conte tried, and failed, to sign last summer - after the Belgian saw his close-range strike blocked by Thibaut Courtois' leg.
The Chelsea goalkeeper then kept out Diego Perotti's low effort, which proved crucial as the Blues went down the other end and doubled their lead through Hazard.
Morata had attempted to score from the right but, after his effort deflected out to Hazard, the Belgian steered the ball home to give Chelsea what they thought was a comfortable 2-0 lead.
But Roma hit back just three minutes later when Kolarov darted past Cesar Azpilicueta all too easily and saw his effort take a big deflection off Andreas Christensen and past Courtois to end the first half 2-1.
The major talking point shortly after the re-start was Conte's decision to bring off goalscorer Luiz for Pedro. The Brazilian had seemingly picked up an injury to his leg in the first half but had told Conte he was fine to continue.
But when the Chelsea manager decided to bring Luiz off anyway, the defender reacted with frustration as Roma got back into the contest following a stunning volley from Dzeko.
The former Manchester City striker, who had said before this game he felt he had improved since his time in England, was released with a long ball over the Chelsea defence and proceeded to unleash a superb strike that restored parity.
The 31-year-old then headed Roma into a shock 3-2 lead with his header from a free-kick, but the travelling fans' joy was short-lived when Hazard delivered a header of his own to make it 3-3.
Despite the open nature of the game, Chelsea held on to avoid their third successive defeat in all competitions and draw 3-3 with Roma.