St Austell did well in the powerplay with Adam Snowdon and Liam Watson restricting Penzance to 25-2 off six overs.
The wickets of Christian Purchase (20) and Simon Keene (25) left the lower order eight overs in which they mustered 45 runs to end on 117-9.
St Austell also lost both openers early. Mike and Alex Bone added 41 before a mix-up saw Alex (22) run out after being sent back.
Needing 29 off 21 balls. Gary Bone (25no) and Adam Snowdon (14no) held their nerve, both hitting crucial maximums.
In a tense finish, 16 was needed off two overs. After Bone took seven off two balls Snowden struck Keene for a straight six and then glanced the winning boundary with six balls to spare to set off jubilant scenes.
St Austell - who last won the county cup in 1996 - will represent Cornwall in the ECB Vitality Club T20 Area Finals Day at Bridgwater on Sunday August 6.

