Adam Reynolds clinched victory for Souths with a 79th-minute penalty, becoming just the seventh player in NRL history to top 200 points in a season.
Defeat continued Manly's abysmal record at Sydney's ANZ Stadium, where they have now lost their last 10 matches stretching back six years.
The first half ebbed and flowed. Souths jumped out to an early 10-0 lead with tries to Alex Johnston and Cody Walker and looked on the brink of taking control until Manly struck back with tries to Parker and Corey Waddell to close the gap to 12-10.
The Rabbitohs lost Walker to the sin-bin around the half-hour mark for striking and Daly Cherry-Evans put Manly in front for the first time with a 35th-minute try after strong work from Moses Suli.
But the Bunnies stole back momentum when Murray dived over a tackler to score by the posts right on halftime. Reynolds converted to give Souths an 18-16 lead at the break.
Manly dominated the third quarter despite losing Parker to the sin-bin for an attempted foot trip, with a Suli try putting them back in front. But a second sin-binning was too much for the Sea Eagles, and proved the pivotal moment of the match.
Souths will take on the Raiders in Canberra next Friday for a place in the grand final. The Storm host the Eels in Melbourne in tonight's semifinal at 9.50pm, with the winner of that match playing the Roosters next Saturday.
South Sydney Rabbitohs 34 (Cameron Murray 2, Alex Johnston, Cody Walker, John Sutton tries; Adam Reynolds 4 cons, 3 pens)
Manly Sea Eagles 26 (Brad Parker, Corey Waddell, Daly Cherry-Evans, Moses Suli, Jack Gosiewski tries; Reuben Garrick 3 cons)
Halftime: 18-16