Marsh, who scored 80 in the first innings, posted 98 off 92 balls in his second dig as WA chased down the 192-run victory target with seven wickets in hand and a day to spare.
The Warriors were in trouble at 2-5 on Saturday when Marsh came to the crease, but the 35-year-old steadied the ship with a scintillating knock that included 19 boundaries.
Marsh fell just short of his 26th first-class ton when he was trapped lbw by part-time spinner Beau Webster with the Warriors requiring just 17 more runs for victory.
After a tough tour for Australia against Pakistan in the UAE, the veteran said making runs in front of friends and family was just what the doctor ordered.
"I tried to block out all of the stuff that has been going on with all the media stuff," Marsh said.
"I wanted to be nice and positive this game and just go out there and play with that freedom, and it worked well.
"It was just nice to come back home and be with the WA boys. I love playing cricket here, and it was just nice to spend some time out there.
"It would have been nice to be there at the end and see the job off.
"But I felt like I played really well today, and that was the main thing - getting out there and playing with some freedom."
Hilton Cartwright (84no) was also crucial in the run chase, combining with Marsh for a 170-run stand.
Marsh survived a confident lbw shout from Jackson Bird when on 30, but the near-miss didn't slow him down.
Bird limped off a short time later with a hamstring injury.
19-year-old fast bowler Cam Green showed why he will be a name to remember for years to come.
His 9-42 across both innings was the cheapest nine wicket haul in Sheffield Shield history and he is the only teenage Warriors bowler to claim two five wicket hauls.
WA head to Queensland for a clash with the Bulls in Round 3, which begins on Saturday 3 November.