Back
Maestre's side have showed glimpses of what they are capable of this season but have struggled to sustain their performances for the full 90 minutes.
But this was the best display from them to date as they overpowered the defending champions in a dominant first half.
Within 30 seconds, they tested Manchester City's backline and could have been 1-0 up when Knaak almost deflected in Lucia Corrales' dangerous cross.
That set the tone for a thrilling 45 minutes in which London City should have been out of sight.
Chances came and went for Fernandez, Danielle van de Donk, Izzy Goodwin, Alexia Putellas and Kadidiatou Diani, with nothing to show from them.
Visitors Manchester City had been on the backfoot but still carried a threat with their devastating frontline and almost broke the deadlock through Knaak's header.
They were only denied by the brilliance of goalkeeper Earps, who was handed a first WSL start and made an excellent double save to push Knaak's header on to the post and claw the rebound off the line.
London City went in at half-time having had 12 shots, nine of them inside the box - but only two on target. They were wasteful and were later made to pay.
More chances went begging early in the second half and it felt inevitable that Manchester City would punish them eventually.
It took one pass from Hemp to find Shaw and the WSL's top-scorer showed her class, rounding Earps and firing the ball into the roof of the net from close range.
London City responded well and kept the pressure on, winning a corner on the left-hand side, which Fernandez capitalised on, flicking her header into the far corner to make it 1-1.
But the difference between the sides was confirmed by Hemp's winner, as despite London City's dominance it was the big players in the big moments that decided the game.
More to follow.
Rate players out of 10 for this game. The rater will close 30 minutes after the final whistle. You must be signed in to a BBC account to play.
1 Give it up
10 Pure perfection
After the opportunity to rate players has closed, the score displayed represents the average from all the submissions by BBC Sport users.