NSW will host WA in the one-day final after a stunning seven-wicket win over competition pacesetters Victoria.
Despite 196 from opener Tom Rogers - the sixth-highest score in domestic one-day history - Victoria's 311 was not enough on Wednesday at the small North Sydney Oval.
After a half-hour rain delay late in the home side's innings, they cruised to 3-256 off 40.5 overs, meaning NSW won with seven balls to spare on their revised target.
While Rogers was the obvious man of the match, NSW opener Daniel Hughes paced their innings with his 119, while captain Moises Henriques made 73no.
Victoria went into Wednesday's last round of games on top of the Marsh Cup ladder with only one loss.
But the outstanding NSW win, coupled with WA beating Tasmania in Hobart, knocked the Victorians out of the February 25 final.
It will be played in Sydney, with the SCG reportedly unavailable and a venue yet to be confirmed.
The loss took the gloss off Rogers' outstanding innings, which surpassed Aaron Finch's 188no as the highest one-day domestic knock by a Victorian.
Rogers took full toll of the short North Sydney boundaries to hammer 15 fours and 15 sixes.
That's the second-most sixes in a domestic one-day game, behind D'Arcy Short's 23.
While Rogers ran amuck, he was the only Victorian batsman to savage the NSW bowlers and that proved crucial.
Apart from Peter Handscomb's 52, no other Victorian scored more than 20.
Ben Dwarshuis and Will Salzmann were on hat-tricks and Dwarshuis finished with 4-40 from nine overs.
NSW lost an early wicket when opener Jack Edwards fell for six, but Blake McDonald (42) settled in with Hughes for a 110-run stand and then Henriques continued the chase.
By the time Hughes was dismissed in the 39th over, the match was effectively over.
It was Hughes's 11th List A century from only 46 games.