Charlton 1 Shrewsbury 0: Salop suffer late heartbreak in the capital
Thierry Small's 96th-minute strike prevented Shrewsbury Town from taking a point back to Shropshire as they were narrowly beaten by Charlton in League One.
Town's improved defensive resilience was on show again in south London as they looked like they had done enough to earn at least a hard-fought point at The Valley.
But sport can be a cruel place, and with the final kick of the game, the ball broke for Charlton at the back post and Small converted.
Just seconds earlier Jordan Shipley had missed a golden chance of his own, which would have seen Salop take the points home.
The results means Gareth Ainsworth's wait for his first win on the road as Town boss goes on.
REPORT
The Shrewsbury Town boss was forced into one change at The Valley as Aaron Pierre missed out with a hamstring injury - he was replaced by Toto Nsiala.
Harrison Biggins returned to the Salop matchday 18 - he was not involved against Wrexham.
New signing Dominic Gape, who joined after leaving non-league Eastleigh, made the bench for the first time.
Luke Berry went close for Charlton in the opening 10 minutes when his right-footed free-kick forced Jamal Blackman into a good save.
After a nervous start, Town did settle, but it was a scrappy affair in south London.
The hosts offered more of a threat, and they should have led just before the half-hour mark. Tyreece Campbell got the better of Alex Gilliead on the Town right, and his whipped shot was cleared off the line at the back post by Morgan Feeney.
Salop survived another scare moments later when Thierry Small found himself with acres of space inside the penalty box. But his left-footed effort went flying into the Shrewsbury fans behind the goal - he should have done better.
Going forward, Shrewsbury relied heavily on set pieces for their threat, but the delivery was poor, often failing to beat the first man, and the hosts easily cleared.
After the break, Leaburn forced Blackman into a good save down to his left when he got away from his man and headed goalward.
It felt like it was going to be one of those days for Charlton when Greg Docherty got a shot away from eight yards out, only for it to hit his own man inside the six-yard box.
As the game went into the final 15 minutes, Salop had their first effort on target when George Lloyd played in John Marquis - but the Town skipper's effort was saved by Ashely Maynard-Brewer.
Kayne Ramsay, who returned from injury for the hosts, headed over with two minutes remaining on the clock.
Jordan Shipley had a golden chance to win it for Town four minutes into stoppage, but his scuffed effort was cleared off the line.
And with the final kick of the game, Charlton finally broke through Town's resistance as Small fired in beyond Blackman.
TEAMS
Charlton: Maynard-Brewer, Gillesphey, Mitchell (Ramsay 75) , Jones, Coventry, Campbell, Berry (Anderson 75) , Docherty (Godden 75), Leaburn (Aneke 62), Edwards, Small.
Subs not used: Mannion, Edmonds-Green, Kanu.
Shrewsbury: Shrews: Blackman, Hoole, M Feeney, J Feeney, Nsiala (Nurse 83), Benning, Ojo (Perry 77), Gilliead, Castledine (Shipley 58), Marquis, Lloyd.
Subs not used: Savin, Biggins, Gape, Stewart.