Preston North End’s 12-game unbeaten league run came to an end as they went down to a second-half penalty against Swindon Town at the County Ground.
Michael Smith stroked home the winner from the spot after Neil Kilkenny had pulled back Ben Gladwin in the box.
It was a poor performance in general from North End who only properly got going in the closing stages after a triple substitution made just before the hour mark.
Either side of Smith’s penalty, PNE had been indebted to some good saves from Declan Rudd as Swindon got on the front foot.
Some late pressure failed to produced an equaliser, with the Lilywhites slipping to their first defeat since being beaten at Wolves in January.
Early in the contest, Swindon midfielder Gladwin curled a shot well over and into the empty open stand behind the goal.
In the sixth minute, Josh Brownhill’s cross from the left found Joe Garner at the near post but the striker headed wide.
North End troubled the Swindon keeper for the first time in the 10th minute, Paul Gallagher playing a short corner to Craig Davies and cutting inside after taking the return pass.
He curled a right-foot cross into the middle which had Wes Foderingham back-pedalling to glove over the bar.
A Chris Humphrey centre was cut out by Jay McEveley, the ball falling towards Garner whose chip just cleared the bar and dropped on to the top of the net.
Davies wriggled into space down the left side of the box in the 19th minute, the striker about to pull the trigger on his shot when Troy Archibold-Henville came across to block and take the ball out for a corner.
Swindon’s first real threatening chance came on the half-hour when Kilkenny lost possession to Massimo Luongo in midfield.
Luongo threaded a fine cross field pass out to find Miles Storey on the edge of the box, his low show hitting the out-stretched left boot of Declan Rudd.
In the 32nd minute, David Buchanan’s pinpoint cross found Garner in the box, his downwards header pushed away at full stretch by Foderingham diving to the left.
Swindon started the second half strongly, and it was during that spell that their winning goal arrived.
Rudd dived to push away a shot from Yaser Kasim, then soon after another Kasim effort flashed just wide of the target.
At the other end, Buchanan’s speculative drive from distance travelled wide without troubling the keeper.
North End fell behind in the 56th minute when Kilkenny pulled back Gladwin as he surged into the box.
Referee Iain Williamson pointed to the spot and Smith sent Rudd the wrong way with a well-taken penalty.
PNE boss Simon Grayson responded with a triple substitution in the 59th minute, Stuart Beavon, Kevin Davies and John Welsh replacing Craig Davies, Garner and Kilkenny.
Still rattled by letting in the goal, North End twice came close to conceding a couple of times more.
Rudd came to the rescue both times, first diving to his right to push away a 25-yard shot from Alex Smith.
Then from much closer quarters, he saved at point-blank range to block Smith’s header after the striker had connected with a Luongo free-kick.
Clarke slid in to deflect a shot from Gladwin over the bar as the home side kept the pressure on.
The impressive Gladwin was then denied by Rudd in the 70th minute, the PNE keeper blocking with his legs.
North End finally found their feet in the last 20 minutes and began to put some pressure on their hosts’ goal.
Gallagher scooped a shot over the top, then in the next attack curled in a low cross which Foderingham had to palm away.
Clarke rose to meet a 75th minute cross from Gallagher, but jumped a moment too early and got under the ball, sending his header over the bar from six yards.
In the closing minutes, North End threw bodies forward in search of that elusive equaliser.
Kevin Davies got a Buchanan cross moments ahead of the keeper but looped a header wide.
Then a 90th minute shot from Brownhill was helped over the bar by Foderingham.
In stoppage time, Rudd joined the attack for a late corner but was unable to make a dramatic intervention.
Swindon: Foderingham, Stephens, Archibald, McEveley, Thompson, Luongo, Kasim, Gladwin (Rossi-Branco 89), A Smith, Storey, M Smith. Subs not used: Reis, Waldon, Barthram, Barker, Reckord, Belford.
PNE: Rudd, Wiseman, Clarke, Wright, Buchanan, Humphrey, Brownhill, Kilkenny (Welsh 59), Gallagher, Garner (Beavon 59), C Davies (K Davies 59). Subs not used: Keane, Holmes, King, Stuckmann.
Referee: Iain Williamson (Berkshire)
Attendance: 7,517 (545 PNE)