Sligo needed extra-time to get past the dogged challenge of London in an intense Tailteann Cup round one tie at Markievicz Park.
The winners head to the inaugural competition's quarter-finals despite hitting 20 wides.
Alan Reilly was Sligo’s hero – he scored 1-06, including the point that brought matters to extra-time.
Brian Egan’s goal in the first-half of extra-time finally gave Sligo some breathing space and they then needed two big saves from goalkeeper Aidan Devaney, who saved London substitute Christopher Farley’s penalty in the second-half of extra-time.
The hosts were favourites for this tie, having overwhelmed London by 18 points, 3-19 to 0-10, when the sides met in an AFL Division Four game at the same venue in March.
In last month's Connacht SFC, Sligo beat New York but then were humbled by Roscommon, while London's provincial campaign was ended by Leitrim.
Pat Spillane – son of the Kerry legend of the same name – made his first championship start for his adopted county.
London, whose journey necessitated squad members taking three different flights from three different airports into Knock, started with two Sligo natives, Eoin Flanagan and James Hynes, in their starting 15, while team captain Liam Gavaghan, whose dad is from Tourlestrane in south Sligo, was on the bench.
The opening exchanges were tight, with both sides content to get bodies back when the other team had possession.
London, who opened the scoring through James Gallagher’s fourth minute point, were comfortable in possession.
Sligo edged in front by the 12th minute, 0-03 to 0-02, as a Pat Hughes point put them in front but the wind-assisted hosts also kicked three wides.
A well-worked move for a London goal – Stephen Dornan setting up James Gallagher for a sweet finish after 14 minutes – stunned Sligo.
But Sligo goaled a minute later when Alan Reilly netted from Nathan Rooney’s assist.
London continued to thrive, with Donegal native James Gallagher a constant threat at corner-forward, and they were a point up, 1-05 to 1-04, with 25 minutes played.
Sligo got themselves back into proceedings when Pat Hughes flicked home a goal from a Paul Kilcoyne delivery.
But dogged Leitrim were just two points down at half-time, 2-06 to 1-07, as Sligo were left frustrated by 10 first-half wides.
London made a sensational start to the second-half when Matthew Walsh goaled with a delightful lofted effort after James Hynes made a great catch in midfield.
This score put London ahead, 2-07 to 2-06, but Sligo quickly levelled through a free converted by goalkeeper Aidan Devaney.
London remained in contention, with James Hynes busy, and they were two points clear, 2-10 to 2-08, by the 49th minute.
A black card for London wing-back Ronan Sloan appeared to have given an advantage to Sligo but London then brought on their attacking ace Liam Gavaghan.
Sligo still couldn’t close the gap and then London, who had just welcomed back Ronan Sloan to proceedings, had a second player black-carded when James Hynes was sent to the sin bin.
Sligo forced extra-time when Alan Reilly landed a massive point in the sixth minute of stoppage time.
The sides initially still couldn’t be separated in the first period of extra-time, even with Alan Reilly shooting two fine points for Sligo.
Substitute Brian Egan netted just before the extra-time interval to give Sligo a four-point lead, 3-14 to 2-13.
London had two players sent off in the second period of extra-time – Eoin Flanagan and James Gallagher were red-carded by referee Niall Cullen
Sligo: Aidan Devaney (0-01f), Nathan Mullen, Evan Lyons, Paul McNamara, Mark Walsh, Darragh Cummins, Paul Kilcoyne, Pat Spillane (0-01), Sean Carrabine (0-01f), Keelan Cawley, Patrick O’Connor (0-04, 1f), Mikey Gordon, Alan Reilly (1-06), Pat Hughes (1-01), Nathan Rooney
Subs: Luke Towey for Pat Spillane, 47; Donal Conlon (0-01) for Nathan Rooney, 57; Peter Laffey for Mark Walsh, 57; Niall Murphy for Pat Hughes, 69; Brian Egan (1-00) for Niall Murphy, 70+6; Kenny Gavigan for Mikey Gordon 72; Conan Marren for Patrick O’Connor 80; Barry Gorman for Sean Carrabine, 88
London: Noel Maher (0-01 ’45), Cahir Healy, Matt Moynihan, Nathan McElwaine, Ronan Sloan, Eoin Walsh, Eoin Flanagan, James Hynes (0-01), Stephen Dornan, Conal Gallagher (0-01), Henry Walsh (0-01), Liam Gallagher, James Gallagher (1-03), Ferghal McMahon (0-04f), Matthew Walsh (1-01)
Subs: Liam Gavaghan (0-01f) for Henry Walsh, 55; Christopher Duggan for Ferghal McMahon, 57; Oladimeji Olajubu for Nathan McElwaine, 66; Christopher Farley (0-01f) for James Gallagher, 70+4; Sean Hickey (0-02) for Oladimeji Olajubu 80; James Gallagher for Stephen Dornan, 82; Henry Walsh for Liam Gallagher, 89
Referee: Niall Cullen (Fermanagh)