A controversial late goal by Gary McDonald secured St Johnstone a place in the Scottish League Cup semi-finals at the expense of Greenock Morton.

The match appeared to be heading for extra-time when Saints won a free-kick.

Stevie May's shot was blocked but referee John McKendrick ordered the set-piece to be retaken, much to Morton's frustration.

The second effort was spilled by goalkeeper Nicolas Caraux and McDonald netted from the resulting loose ball.

St Johnstone join Aberdeen, Hearts and Inverness Caledonian Thistle in Thursday's semi-final draw.

Scottish Championship side Morton were hoping to claim another Premiership scalp after their shock win at Celtic Park in the previous round.

St Johnstone midfielder Gary McDonald celebrates after scoring against Morton

McDonald scored in the fifth minute of injury-time

And the hosts's captain Mark McLaughlin had an early header saved by goalkeeper Alan Mannus.

A speculative long-range effort from Dougie Imrie flew wide of the visitors's goal and the midfielder tested Mannus with another drive moments later.

Nigel Hasselbaink fired into the side netting as Saints tried to force an opener before the break.

With chances few and far between in the second half, St Johnstone won a free-kick 25 yards out that David Wotherspoon fired against the outside of the post.

Brian Easton then directed a Wotherspoon corner over Caraux's goal.

As the match entered injury-time, Saints won another free-kick and May's effort came back off Nacho Novo, only for referee McKendrick to order the retake.

Novo was booked for encroachment and May's second effort was not held by Caraux, allowing McDonald to pounce and secure victory for the Perth side.

St Johnstone boss Tommy Wright: " We had the character to keep going but you also have to give Morton credit. We showed hunger and desire to get a winner. When Stevie May is over a free-kick then anything can happen. It's come off the keeper and we've followed it in - Gary McDonald's stuck it in.

"We're happy to come through the tie and have a big game to look forward to. To get a goal that late, maybe fortune's favouring us."

Lineup, Bookings (6) & Substitutions (5)

Greenock Morton

  • 23 Caraux
  • 12 Reid
  • 03 Fitzpatrick (Page - 36' )
  • 18 Habai Booked
  • 06 McLaughlin
  • 04 Peciar
  • 09 Wallace
  • 21 Bachirou
  • 20 Gómez Novo Booked
  • 07 McKee Booked (Stirling - 58' )
  • 08 Imrie Booked

Substitutes

  • 01 Gaston
  • 05 Page
  • 10 Campbell
  • 16 Stirling
  • 48 Cham

St Johnstone

  • 01 Mannus
  • 19 Miller
  • 24 Easton Booked
  • 08 McDonald
  • 02 Mackay
  • 05 Wright (Scobbie - 46' )
  • 07 Millar
  • 04 Cregg (Davidson - 64' )
  • 17 May
  • 11 Hasselbaink Booked (Fallon - 79' )
  • 10 Wotherspoon

Substitutes

  • 03 Scobbie
  • 14 Edwards
  • 15 Banks
  • 18 Davidson
  • 27 Fallon
Ref: John McKendrick
Att: 2,619

Match Stats

Shots

9 11

On target

4 4

Corners

5 2

Fouls

22 14

Live Text Commentary

Full time

Full Time Match ends, Morton 0, St Johnstone 1.

90:00 +4:47 Full time

Full Time Second Half ends, Morton 0, St Johnstone 1.

90:00 +4:40 Booking

Booking Dougie Imrie (Morton) is shown the yellow card.

90:00 +4:21 Goal scored

Goal! Goal! Morton 0, St Johnstone 1. Gary McDonald (St Johnstone) right footed shot from the right side of the six yard box to the bottom right corner.

90:00 +3:24

Attempt saved. Steve May (St Johnstone) right footed shot from outside the box is saved in the top right corner.

90:00 +2:46 Booking

Booking Nacho Novo (Morton) is shown the yellow card.

90:00 +2:24

Hand ball by Nacho Novo (Morton).

90:00 +1:27

Attempt blocked. Steve May (St Johnstone) right footed shot from outside the box is blocked.

90:00 +1:01

Steve May (St Johnstone) wins a free kick in the defensive half.

90:00 +1:01

Foul by Michal Habai (Morton).

89:29

Attempt saved. Steve May (St Johnstone) right footed shot from the left side of the box is saved in the top centre of the goal.

86:09

Foul by Steve May (St Johnstone).

86:09

Jonathan Page (Morton) wins a free kick on the left wing.

83:01

Attempt saved. Chris Millar (St Johnstone) right footed shot from the right side of the box is saved in the top centre of the goal.

81:26

Attempt missed. Nacho Novo (Morton) right footed shot from outside the box misses to the right.

80:30

Attempt blocked. Nacho Novo (Morton) right footed shot from the left side of the box is blocked.

80:18

Foul by Steve May (St Johnstone).

80:18

Stephen Stirling (Morton) wins a free kick in the defensive half.

79:36

Foul by Dougie Imrie (Morton).

79:36

David Mackay (St Johnstone) wins a free kick in the defensive half.

79:10

Foul by Tony Wallace (Morton).

79:10

Thomas Scobbie (St Johnstone) wins a free kick in the attacking half.

78:25

Foul by Steve May (St Johnstone).

78:25

Craig Reid (Morton) wins a free kick in the attacking half.

78:05 Substitution

Substitution Substitution, St Johnstone. Rory Fallon replaces Nigel Hasselbaink.

77:38

Foul by Craig Reid (Morton).

77:38

David Wotherspoon (St Johnstone) wins a free kick in the defensive half.

76:51

Attempt missed. Brian Easton (St Johnstone) right footed shot from the centre of the box is too high.

76:37

Corner, St Johnstone. Conceded by Mark McLaughlin.

76:12

Attempt blocked. David Wotherspoon (St Johnstone) right footed shot from outside the box is blocked.

75:37

Foul by Stephen Stirling (Morton).

75:37

Murray Davidson (St Johnstone) wins a free kick in the defensive half.

75:12

David Wotherspoon (St Johnstone) hits the left post with a right footed shot from outside the box from a direct free kick.

74:29

Foul by Michal Habai (Morton).

74:29

Steve May (St Johnstone) wins a free kick in the attacking half.

74:00

Gary Miller (St Johnstone) wins a free kick in the attacking half.

73:55

Foul by Nacho Novo (Morton).

72:21

Corner, St Johnstone. Conceded by Mark McLaughlin.

71:40

Attempt saved. Dougie Imrie (Morton) left footed shot from more than 35 yards is saved in the top centre of the goal.

69:37

Attempt saved. Stephen Stirling (Morton) left footed shot from outside the box is saved in the centre of the goal.

67:48

Michal Habai (Morton) wins a free kick in the attacking half.

67:48

Foul by Nigel Hasselbaink (St Johnstone).

63:38

Mark McLaughlin (Morton) wins a free kick in the attacking half.

63:38

Foul by Steve May (St Johnstone).

63:11 Substitution

Substitution Substitution, St Johnstone. Murray Davidson replaces Patrick Cregg.

59:37

Fouad Bachirou (Morton) wins a free kick in the attacking half.

59:37

Foul by Patrick Cregg (St Johnstone).

57:59 Substitution

Substitution Substitution, Morton. Stephen Stirling replaces Joe McKee.

56:14

Foul by Michal Habai (Morton).

56:14

Nigel Hasselbaink (St Johnstone) wins a free kick in the defensive half.

51:03

Corner, Morton. Conceded by Thomas Scobbie.

50:48

Attempt blocked. Nacho Novo (Morton) right footed shot from the right side of the box is blocked.

47:33 Booking

Booking Joe McKee (Morton) is shown the yellow card.

47:22

Foul by Joe McKee (Morton).

47:22

Thomas Scobbie (St Johnstone) wins a free kick in the defensive half.

45:11 Substitution

Substitution Substitution, St Johnstone. Thomas Scobbie replaces Frazer Wright because of an injury.

45:00

Second Half begins Morton 0, St Johnstone 0.

45:00 +0:24 Half time

Half Time First Half ends, Morton 0, St Johnstone 0.

44:36

Corner, Morton. Conceded by Frazer Wright.

42:50

Corner, Morton. Conceded by David Wotherspoon.

40:44

Corner, Morton. Conceded by Gary Miller.

39:51 Booking

Booking Brian Easton (St Johnstone) is shown the yellow card.

39:46

Tony Wallace (Morton) wins a free kick in the defensive half.

39:46

Foul by Brian Easton (St Johnstone).

38:07

Attempt missed. Nigel Hasselbaink (St Johnstone) right footed shot from the right side of the box is close, but misses to the right.

37:34

Foul by Dougie Imrie (Morton).

37:34

Gary Miller (St Johnstone) wins a free kick in the defensive half.

35:49

Foul by Jonathan Page (Morton).

35:49

Nigel Hasselbaink (St Johnstone) wins a free kick on the right wing.

35:22 Substitution

Substitution Substitution, Morton. Jonathan Page replaces Marc Fitzpatrick because of an injury.

31:46

Attempt saved. Dougie Imrie (Morton) left footed shot from more than 35 yards is saved in the top centre of the goal.

31:33

Attempt blocked. Fouad Bachirou (Morton) right footed shot from outside the box is blocked.

30:42

Nacho Novo (Morton) wins a free kick in the defensive half.

30:42

Foul by Chris Millar (St Johnstone).

30:07

Michal Habai (Morton) wins a free kick in the attacking half.

30:07

Foul by David Wotherspoon (St Johnstone).

29:49

Attempt blocked. David Mackay (St Johnstone) right footed shot from outside the box is blocked.

29:06

Foul by Michal Habai (Morton).

29:06

Chris Millar (St Johnstone) wins a free kick in the defensive half.

28:32

Foul by Fouad Bachirou (Morton).

28:32

David Wotherspoon (St Johnstone) wins a free kick in the attacking half.

27:22 Booking

Booking Michal Habai (Morton) is shown the yellow card.

27:13

Foul by Michal Habai (Morton).

27:13

Gary McDonald (St Johnstone) wins a free kick in the attacking half.

25:31

Fouad Bachirou (Morton) wins a free kick on the right wing.

25:31

Foul by Nigel Hasselbaink (St Johnstone).

24:46 Booking

Booking Nigel Hasselbaink (St Johnstone) is shown the yellow card.

24:00

Craig Reid (Morton) wins a free kick in the defensive half.

24:00

Foul by Nigel Hasselbaink (St Johnstone).

23:28

Foul by Craig Reid (Morton).

23:28

Nigel Hasselbaink (St Johnstone) wins a free kick in the defensive half.

22:31

Attempt missed. Dougie Imrie (Morton) left footed shot from long range on the left is close, but misses to the right.

19:15

Nigel Hasselbaink (St Johnstone) wins a free kick in the defensive half.

19:15

Foul by Mark McLaughlin (Morton).

14:37

Dougie Imrie (Morton) wins a free kick in the defensive half.

14:37

Foul by Gary Miller (St Johnstone).

13:32

Foul by Joe McKee (Morton).

13:32

Frazer Wright (St Johnstone) wins a free kick in the attacking half.

10:57

Attempt missed. David Wotherspoon (St Johnstone) right footed shot from outside the box is close, but misses to the left.

10:15

Foul by Michal Habai (Morton).

10:15

Patrick Cregg (St Johnstone) wins a free kick on the right wing.

8:57

Hand ball by Dougie Imrie (Morton).

5:57

Attempt saved. Mark McLaughlin (Morton) header from the centre of the box is saved in the top centre of the goal.

5:20

Foul by Patrick Cregg (St Johnstone).

5:20

Tony Wallace (Morton) wins a free kick in the defensive half.

3:00

Foul by Brian Easton (St Johnstone).

3:00

Tony Wallace (Morton) wins a free kick on the left wing.

2:03

Patrick Cregg (St Johnstone) wins a free kick on the left wing.

2:03

Foul by Dougie Imrie (Morton).

1:00

Brian Easton (St Johnstone) wins a free kick in the defensive half.

0:58

Foul by Tony Wallace (Morton).

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers