Garcia scored 16 of his 18 points in the second half, helping the 12th-ranked Cardinals avoid their second loss in three games.
Travis Diener's 3-pointer at the buzzer bounced off the rim.
Louisville (22-4, 10-2 Conference USA) trailed 61-50 with 5:38 remaining and scored 11 straight points to tie it before Garcia turned over the ball to Todd Townsend with 47 seconds left.
Joe Chapman missed a hurried 3-pointer and Ellis Myles grabbed the rebound for Louisville with 13 seconds left.
with 2.6 seconds left
gave U of L a 64-61 win
over Marquette (AP)
Steve Novak's 14 points led Marquette (17-8, 5-7), which was in prime position to secure a confidence-building upset against a team that handed out its worst loss ever -- 99-52 last month when Diener was sidelined by a foot injury.
Diener sank two of three free throws and then fed Novak for a 3-pointer on the break that gave Marquette a 61-50 lead with 5:38 remaining.
But the Golden Eagles never scored again.
Otis George's free throw, Ellis Myles' put-back and Garcia's layup made it 61-55 with 3:34 left and forced Marquette coach Tom Crean to call timeout.
Twenty seconds later, Garcia picked up his fourth foul and sent Marcus Jackson to the line. But he missed both shots, and Larry O'Bannon's layup made it a four-point game with under three minutes left.
O'Bannon, who finished with 15 points, was fouled by Chapman with 1:37 left and as he sank his first foul shot, Ryan Amoroso shoved George to the floor, drawing a foul himself.
After O'Bannon sank his second shot, George stepped up and sank two of his own, tying it at 61.
Diener missed a layup, but then Garcia turned it over as Townsend smothered the ball and called timeout.
The Golden Eagles took too much time setting up a shot and Chapman had to hurry one just before the shot clock went off.
The Golden Eagles took a 32-29 halftime lead despite going the final 3:16 without a point and even though Diener missed eight of his nine shots, seven from beyond the arc.
Marquette jumped to a 13-2 lead in the first five minutes, but Cardinals coach Rick Pitino waited for the TV timeout to regroup, and it worked. Louisville responded with a 17-3 run to take a 19-16 lead.
The Cardinals' run was capped by Brandon Jenkins' strip of Diener at midcourt and a rim-rattling dunk as Diener struggled to his feet.