Haney's title wasn't on the line after Garcia failed to make weight for the fight at the Barclays Center in Brooklyn, coming in 3.2 pounds over the 140-pound limit.
But Garcia emerged from a chaotic buildup to the bout that included a string of erratic social media posts from "KingRy," who also teased onlookers by appearing to drink beer at the ceremonial weigh-in but later indicated on social media it was apple juice and sparkling water.
Garcia rattled Haney with a left hook in round one, but Haney out-boxed the unorthodox Garcia in the second round and continued to press his advantage until Garcia sent him to the canvas with a left hook in the seventh round.
Haney produced another strong round in the ninth, but Garcia had him down again in the 10th and 11th - when he backed Haney up with a straight right and felled him with another left.
The final result was closer than it would have been if Garcia hadn't had a point deducted for hitting on the break in the seventh round.
In the end, one judge scored it a draw at 112-112, one gave it to Garcia 114-110 and the third saw it 115-109 for Garcia, who improved to 25-1, his lone defeat coming against Gervonta Davis in April 2023.
Haney fell to 31-1.