
The former Manchester United forward fired a sweetly-struck left-foot effort into the net after 53 minutes of an enthralling contest which had slipped from Chelsea’s grasp.
Brazilian teenager Estevao put the visitors ahead with a neat finish in the 16th minute but after a slow start Qarabag came alive in the Tofiq Bahramov Republican Stadium.
Leandro Andrade steered home a rebound in the 29th minute to cancel out Chelsea’s lead after Camilo Duran had shrugged off Jorrel Hato and cut in to send a shot against the upright.
Things went from bad to worse for the London side before halftime as Marko Jankovic converted a penalty awarded for a handball by the inexperienced Hato.
Halfway through the 36-team group phase, Chelsea have seven points while Qarabag, who lost to Chelsea by an aggregate of 10-0 in the Champions League in 2017-18, also have seven.
Garnacho opened his account for Chelsea last month and was impressive after being one of three halftime substitutions for a youthful visiting side in which Enzo Maresca rang the changes.
With Chelsea’s expensively-assembled team in danger of a humiliating loss, manager Enzo Maresca sent on Garnacho, Liam Delap and Enzo Fernandez for the second half in place of young trio Andrey Santos, Jamie Gittens and Tyrique George.
And it was Delap who began the move that ended with Garnacho burying a low shot past Qarabag keeper Mateusz Kochalski.
The Argentine almost won it at the death for Chelsea with an overhead volley but an intrepid Qarabag also came close to a first win against English opposition with Oleksii Kashchuk firing straight at keeper Robert Sanchez.