League One side Portsmouth produced a clinical second-half display to win at Championship Cardiff City and progress to the second round of the EFL Cup.
Despite enjoying almost total control of possession, Cardiff created few chances in a goalless first half.
Joe Piggott seized on a Curtis Nelson mistake to fire Pompey in front.
Nelson then fouled Michael Morrison at a corner to conceded a penalty, which Ronan Curtis converted emphatically before Colby Bishop headed in a third.
To make matters worse for Cardiff, debutant Vontae Campbell was shown a red card in the 90th minute and the home side were booed off by their fans at the final whistle.
By contrast, Portsmouth's noisy travelling supporters celebrated each goal with great glee and, with with large parts of the Cardiff City Stadium closed, this often felt like a home game for Pompey.
Danny Cowley's men were ruthless in the final half an hour, bringing to life what had been a meandering encounter between two much-changed teams in front of a sparse crowd.
The lack of intensity bred moments of sloppiness from Cardiff, whose dithering on the ball in defensive positions almost saw them fall behind after a minute as midfielder Eli King was caught in possession by Piggott, whose shot was palmed away back Jak Alnwick.
That sequence was typical of a messy first half, with the home side's 10 changes and Portsmouth's six contributing to a disjointed affair.
Cardiff were still able to create some opportunities, often thanks to the trickery and swift movement of winger Jaden Philogene, making his first start since joining on loan from Aston Villa.
He played the pass to Mark Harris for the best chance of the half but the Wales forward's low shot was superbly blocked by Portsmouth captain and centre-back Sean Raggett.
Cardiff had as much as 80% possession in the first half but they were punished for their inability to do anything useful with it when Piggott put Portsmouth ahead.
Nelson sold Campbell short with a header, allowing Ronan Curtis to steal in and feed Piggott, whose low shot bobbled in off the post to spark jubilant scenes in the away end.
Nelson, who had conceded a penalty during Saturday's Championship defeat at Reading, then gave away another spot-kick for pulling substitute Morrison down, and Curtis hammered home from 12 yards.
Four minutes later, Portsmouth had a third goal as another substitute, Bishop, headed in at the back post from a corner.
Having been forced on to the back foot for long periods of this match, Pompey enjoyed every second of their second-half dominance whereas Cardiff's evening to forget served up one final ignominy as Campbell was sent off for a lunging foul on Joe Rafferty.
Cardiff City: Alnwick, Campbell, Denham, Nelson, Bagan; King, Ralls (c), Tanner (R.Colwill 52), Whyte (Ojo 52), Philogene (Etete 72), Harris (Semenyo 90+1). Subs not used: Allsop, McGuinness, Wintle, J.Colwill, Watters.
Portsmouth: Griffiths, Swanson, Mnoga, Raggett (c) (Morrison 46), Rafferty, Dale (Hackett 63), Mingi, Pack (Lowery 46), Curtis; Pigott (Jacobs 64), Scarlett (Bishop 62). Subs not used: Oluwayemi, Freeman, Thompson, Jewitt-White.