The European football governing body, Uefa, announced the decision for the match to go ahead after a security meeting held just under two hours before the scheduled kick-off.
A Spanish police spokesman told the BBC that nine people were slightly injured in the first, bigger blast at the foot of the Europa Tower at 1655 (1455 GMT).
Police said a "tiny" second car bomb exploded later about two kilometres away. No casualties were reported from that blast.
The Basque separatist organisation ETA claimed responsibility for the attack. It delivered a telephone warning 15 minutes before the first blast, allowing an evacuation of the area.
Bombs
The first car bomb was planted at the lower level of the Europa Tower, just 50 metres from the stadium.
At least 10 other cars nearby caught fire, but initial reports that the tower itself had caught fire were later denied.
The tower was reported to be empty because of the public holiday, but the area was engulfed in smoke.
The BBC's sports correspondent Ed Harry says shortly after the blast some fans fought running battles with police, spreading more panic.
The second blast destroyed a Ford Escort, about two kilometres from the stadium. The car was reported to have been hijacked.
A major clean-up operation is now under way near the stadium.
Key match
The crucial match - the second leg of the European Champions League semi-final - started 1845 GMT.
Real Madrid is 2-0 ahead after the first leg in Barcelona.
The winners will advance to the final at Hampden Park in Glasgow on May 15, where they will face the German side Bayer Leverkusen.
Ahead of Uefa's decision, Barcelona spokesman Jose Miguel Teres said the were "resting and the mood within the hotel is one of calmness."