It's a vital result, that will do so much for the confidence of this young group, who were widely written off before the season.
There is still much to work on but they have something to build on, a marked contrast to last season, when they claimed only one point from the first three matches.
It also extends the Phoenix's unbeaten run to 13 matches, with their last defeat back in April against Melbourne City.
The first half was a cagey affair, with few clear-cut chances. It was far from ideal conditions, with a blustery wind, and both teams took time to settle.
Hooper had a couple of opportunities, though couldn't test Mariners goalkeeper Mark Birighitti.
Sotirio used his pace to good effect and should have done better in the 35th minute, when he spun off his marker delightfully, but then looked in two minds, with his sidefoot effort eventually deflected for a corner.
In some ways that indecision was a theme of the half for the Phoenix, who couldn't get the balance right in the final third.
Sometimes they lacked patience offensively, trying to thread the needle when retaining possession was the better option, and on other occasions the final touch or pass let them down.
The Mariners used the ball to good effect, with former All White Storm Roux a regular outlet. They shaded the first half – with captain Oliver Bozanic forcing Oli Sail into two strong saves in the space of a minute from long-range drives. On both occasions Bozanic was lurking just outside the area, not closed down as the ball was laid back.
The Phoenix came out strong after the break, with a superb Reno Piscopo free kick producing a flying save from Birighitti. From the resultant corner they were ahead, with Hooper reacting quickest to a loose ball to tuck home, with the goal cleared after an exhaustive VAR check.
But the lead only lasted four minutes, after they gave up a calamitous goal. From a Mariners clearance, Josh Laws completely mishit his back pass, allowing Marco Urena to swoop and easily finish past a stranded Sail.
The Phoenix had to respond, and Hooper had another chance – from one of the best moves of the game – before Urena had Sail worried after a sharp turn.
The match opened up, and took another turn in the 62nd minute, when Sotirio produced a fine angled finish from the edge of the area, after being set up by David Ball.
From there it was about game management, with Waine, Nicholas Pennington and Ben Old introduced, while Louis Fenton replaced the injured Callan Elliot (shoulder).
They were guilty of sitting too deep at times, inviting pressure, and only a timely Tim Payne block stopped a goal-bound Matt Hatch shot.
The Phoenix could have made the game safe in the 86th minute, after Old won a penalty, latching on to a James McGarry pass. Waine looked distracted, after an argument with Piscopo over who should take the kick, and Birighitti saved well at his right hand post.
That gave the Mariners hope, but they couldn't find the decisive moment, as the Phoenix held on.
Wellington Phoenix 2 (Gary Hooper 48, Jaushua Sotirio 63)
Central Coast Mariners 1 (Marco Urena 52)
Halftime: 0-0