Colombian Rodriguez, who came on for the injured Cristiano Ronaldo at halftime, thought he had won the game when he slotted the ball into the net but there was still time for Garcia to head home two minutes from time.
Ronaldo was having a quiet game before going off at the break as a precaution due to a pain his left leg.
There was little of the flair that saw Real beat Sevilla in European Super Cup a week ago and, although there were several new names in the Atletico side from last season, they maintained the same solidity that saw them win La Liga.
Atletico host Real in the return leg at the Calderon on Friday where they will be seeking revenge for their defeat in the Champions League final by their city rivals.
"There is everything to play for now. I got the goal but it could have been anyone in the team. We now have another match at home and the chance of lifting a trophy," Garcia told reporters.
Real midfielder Xabi Alonso said Atletico were favourites.
"They were compact and very difficult to play against. We did our best," he told reporters.
"We have to go now to their stadium and score a goal which puts them in the driving seat."
Real started with new signing Toni Kroos in midfield but another new face Rodriguez was on the bench having failed to make much of an impression against Sevilla.
Angel Di Maria, who has been strongly linked to a move away before the end of the transfer window, was another on the bench and there wasn't even a place in the squad for Sami Khedira who is also set to leave.
Real enjoyed plenty of possession but the visitors had the first shots on target in quick succession after 10 minutes from Mario Mandzukic and Garcia which keeper Iker Casillas dealt with comfortably.
Bale made some dangerous runs down the right but lacked an end product while Ronaldo saw little of the ball before going off.
In the second half there were few chances before Rodriguez knocked home a loose ball in the area but in the dying minutes Garcia stretched to nod in from a corner.