Derry City booked their FAI Cup semi-final place following a hard-fought victory over ten-man Shamrock Rovers.

After taking the lead thanks to Jamie McGonigle's header; Rovers levelled things through Rory Gaffney to take the tie into extra-time before goals from Daniel Lafferty and Brandon Kavanagh sealed the victory for Ruaidhri Higgins' men.

Derry missed a golden chance to break the deadlock against their title rivals on six minutes as Will Patching's deep free-kick from the left found Cameron Dummigan, who had ghosted in at the back post, but his close-range shot was straight at Rovers keeper Leon Pohls.

City took the lead on 19 minutes as centre-back Mark Connolly found himself free at the back post and his clever left-wing cross found Jamie McGonigle, who made no mistake heading home his first goal in eight games.

The woodwork came to Rovers' rescue minutes later as Dummigan's stunning 25-yard drive, which had Pohls beaten, crashed off the crossbar.

On 38 minutes, Derry should have added a second but Patching missed from the penalty spot for the second time against Rovers in a matter of weeks.

The Hoops were reduced to ten men after Lee Grace brought down Patrick McEleney inside the box to give away the spot-kick but Patching's resulting penalty crashed against the crossbar.

Derry started the second half on the front foot and a clever flick by Patching found Ronan Boyce, but the defenders strike on the slide was gathered by Pohls.

Just before the hour mark, the visitors went close to levelling things but Rory Gaffney's well hit strike was comfortably gathered by Brian Maher.

Pohls was called into action moments later as McGonigle latched onto McJannet's header down field, before the striker's left-footed effort was parried away by the German net-minder.

The ten men equalised on 66 minutes following a slick move, which saw Neil Farrugia burst into the City box, before cutting the ball back to Andy Lyons. His first-time effort was only parried by Maher and Gaffney was on hand to blast home from close range.

In the closing stages of normal time, a Michael Duffy corner found McJannet, but his glancing header flashed just past Pohls' left hand post.

With virtually the last kick of the 90 minutes, Derry went close to winning but substitute Joe Thomson couldn't keep his diving header down.

But the hosts went back in front on 96 minutes as Duffy's corner into the six-yard box found Lafferty, who leapt like a salmon before powerfully heading home past Pohls.

The Brandywell men sealed their place in the last four on 110 minutes as Akintunde found Brandon Kavanagh, who sprinted away down the right before cutting into the box and blasting low past Pohls.

Derry City: Brian Maher, Ronan Boyce, Mark Connolly, Shane McEleney (Daniel Lafferty 73), Cameron McJannet; Sadou Diallo (Brandon Kavanagh 83), Patrick McEleney, Will Patching (Joe Thomson 71); Cameron Dummigan, Jamie McGonigle (James Akintunde 71), Michael Duffy (Ryan Graydon 114).

Shamrock Rovers: Leon Pohls, Sean Gannon, Dan Cleary, Lee Grace; Neil Farrugia (Dylan Watts 97), Sean Kavanagh, Chris McCann (Ronan Finn 83), Jack Byrne (Graham Burke 87), Andy Lyons; Aaron Greene (Gary O'Neill 40), Rory Gaffney (Simon Power 87 - Gideon Tetteh 105).

Referee: Rob Henessy