London survived a David Igoe red card and a Willie McDonnell missed penalty from Mayo to edge into the All-Ireland plate final 0-10 to 0-09.
Maurice Hodnett scored 0-4 (2f) as the Exiles battled back to overcome a three point deficit at half time.
McDonnell grabbed all of his sides opening scores in that first period, but his failure to beat London keeper Brian McBrearty from close in would prove costly.
London will now face Kildare in the All-Ireland Plate play off final in Dublin this Saturday.
A particularly impressive third quarter from the Exiles set them up nicely for this win, along with that penalty miss to ensure London took victory in a game which saw no more than three points between the sides.
Indeed the sides were tied on five occasions, including three times in the opening 17 minutes.
London opened through Stephen Lynch, but a brace of McDonnell points edged Mayo in front for the first time after seven minutes.
Both sides were wasteful over the following six minutes, before trading scores, before a Hodnett effort - his second of the game - levelled the match at three points a piece on 17 minutes.
McDonnell leads the way for Mayo
McDonnell was unerring from placed balls in the opening half, and grabbed all of Mayo's first half tally as the Westerners led by 0-7 to 0-4 at the break.
Despite Mayo having scoring chances, London made the most of the third quarter, and levelled at 0-7 each, with Hodnett, Stephen Lynch and Chris Byrne on target inside 10 minutes of the restart.
However, Myles Fallon had a goal chance blocked while at the opposite end Mayo captain Fintan Forde also proved solid at the back.
London edge ahead
An eighth McDonnell point put Mayo ahead in the 44th minute but with Mayo becoming wasteful, London settled as a trio of scores helped them take a 0-10 to 0-8 lead.
Indeed the Exiles could have had a 52nd minute goal, but Eamon Mulderrig Mayo blocked a Conor McStravick goal shot.
Joe Heneghan had a goal effort blocked in the 55th minute for Mayo, before a Tommy McManamon effort resulted in Mayo being awarded a penalty. However McDonnell slotted wide on his own side from the place-kick.
Myles Fallon cut the deficit in the 57th minute, with the only score not to come from the boot of Willie McDonnell, before four minutes of injury time were played.
London lost David Igoe to a second yellow card, but persevered well, and defended strongly in the closing stages. Willie McDonnell had a testing free from an acute angle and a swirling breeze to force extra-time with the last kick.
However, his effort went wide of the target and London progressed to face Kildare.
LONDON: B McBrearty; M Hession, K Geraghty, V Sullivan; Chris Byrne (0-1), C Moone, P McDermott; P Donaghy (0-1), D Connolly (0-2); S Lynch (0-2, 2f), M Hodnett (0-4, 2f), C McStravic; G O'Shea, D Igoe, N Furlong. Interchange Subs: F McMahon, K Killane, J Reddington, A Gleeson, P Byrne, E McGuigan.
MAYO: J Noonan; D Doyle, JP Sheridan, A McLoughlin; J Crean, F Forde, P Mulchrone; P Barrett, S Thomas; E O'Toole, M Fallon (0-1), J McDonnell; W McDonnell (0-8, 6f), J Heneghan, D Campbell. Interchange Subs: E Mulderrig, B Vahey, A Crean, G O''Malley, T McManamon.
REFEREE: F McGreevy (Dublin)