The visitors won by seven wickets at Taunton.
The home side were bowled out in 40.2 overs for just 216 after winning the toss, George Bartlett top-scoring with 40, while Roelof van der Merwe contributed 38.
Kyle Abbott led an inspired bowling effort with three for 36.
Denver Hume: Portsmouth's expensive forgotten man and why former Sunderland defender really could be one for the future
'Real driving force... lion-hearted display... classy presence' - Neil Allen's Portsmouth ratings from 3-0 Carabao Cup win at Cardiff
Cardiff 0 Portsmouth 3: Neil Allen's verdict - From Fratton boos to 'Just like watching Brazil' as brilliant Blues produce remarkable cup shock
Portsmouth transfer news: The four Fratton Park departures Blues could still sanction before window shuts - including ex-Sheffield United defender and Luton midfielder
'We’ve got a real problem': Portsmouth boss reveals headache after career first at Cardiff
After wrapping up the success Donald is now looking forward to taking the next step in pursuit of more one-day glory for the defending champions.
He said: ‘The aim was to secure a home semi-final and we have done that. We will keep an eye on other results, but we fancy ourselves against anyone at the Ageas Bowl.
‘It was a fantastic effort by our bowlers. Anytime you come to Taunton and restrict Somerset to around 220 you can feel pretty pleased.
‘I am delighted to have had the chance to show what I can do at the top of such a good batting line-up. It’s always nice to go into the knock-out stages of a competition in strong form and we now skip a stage, which is also great.’
Donald reached his half-century off 50 balls, with five fours and two sixes.