Bohemians’ title charge was dented at the Showgrounds as manager Sean Connor saw his old side, Sligo Rovers, pick up their first win in four games.
Rovers turned the form book on its head from the opening stages, and went ahead after just eight minutes. A brilliantly worked free involving Matthew Judge, Fahrudin Kuduzovic and Keith Foy ended with Bohs keeper Brian Murphy saving a forceful shot from Bosnian Kuduzovic.
Rovers kept the pressure on and from a short corner Foy rattled a post, before the ball broke to Gavin Peers, who steered it across goal for Judge to tap in.
Judge, one of nine players in the Rovers line-up signed by Connor, claimed his fourth goal of the season, as Bohs conceded for the first time in three games.
Bohs were without former Rovers player Harpal Singh and Dean Pooley because of injury, while John Paul Kelly was only fit enough to start on the bench.
Rovers recalled goalkeeper Richard Brush to the team beaten by Drogheda midweek, while defender Gavin Peers also returned from injury.
And they were well deserving of their half-time lead, with Judge and Kuduzovic causing all sorts of problems up front, while Raffaele Cretaro flashed a powerful effort narrowly wide from outside the area.
Rovers should have been further ahead on 35 minutes when Judge was denied by Murphy and then Jason McGuinness, after Seamus Coleman and Foy had worked an opening.
The closest Bohs came to scoring was through shots from Kevin Hunt and McGuinness, both of which were dealt with by Brush in the Rovers goal.
Connor threw Sligo native Mark Rossiter on to try and get Bohs back in the game and it worked just three minutes into the second-half.
Coleman was adjudged to have fouled Glen Crowe in the box as Rossiter swung in a free and the former Sunderland player converted his second penalty in the space of six days to take the Dubliners level.
Things turned a little nasty after this, both on and off the park as Rovers assistant manager Gerry Carr was sent off and Bohs' Stephen Rice was booked for a bad foul on Cretaro.
Rovers made a double change on the hour-mark, with Brian Cash and Sean Kelly coming on, and they almost went back in front as Conor O’Grady’s neat dummy opened up the Bohs rearguard, but he dragged his left foot shot just wide.
Cash also went close with a couple of stinging efforts, but Rossiter could have put Bohs in front at the other end, but his shot from Darren Mansaram’s cross flew wide.
In an eventful final quarter, Owen Heary went close with a close range header, before the same player took Sean Flannery’s effort off the line following great work from Cash.
But the bad blood continued with substitute Dessie Byrne lucky to just see yellow after appearing to stamp on Coleman.
Rovers boss Paul Cook then followed Carr to the stands as referee Declan Hanney acted on the instructions of fourth official Derek Tomney.
Owen Heary, John Paul Kelly and Neale Fenn had great chances to win it for the visitors, but found keeper Brush in great form.
And Sligo stole it two minutes into injury-time as Kuduzovic was bundled over in the box by Liam Burns, and he dusted himself down before confidently netting the spot-kick.
Sligo Rovers: R Brush, S Coleman, J MacKenzie, G Peers, K Foy (B Cash 60), R Cretaro (S Kelly 60), C O’Grady, A Hughes (c), S Manson, M Judge (S Flannery 69), F Kuduzovic.
Subs not used: T Arcaba, G Curran.
Bohemians: B Murphy, C Powell (D Byrne 66), L Burns, J McGuinness, O Heary, K Hunt (c) (JP Kelly 77), S Rice, T Heary (M Rossiter 41), N Fenn, D Mansaram, G Crowe.
Subs not used: C Kingsberry, L Boyle.
Referee: D Hanney.