A Johnny Leota try at the death denied Warriors a much-deserved losing bonus point at the AJ Bell Stadium after a fine performance from Sale Sharks.
Two penalties from Ryan Mills had put Warriors 6-5 ahead half an hour into the game before a David Seymour try helped Sale to a 13-6 lead at the break.
Josh Beaumont extended the hosts’ lead before Danny Cipriani converted to put Sale 20-6 ahead five minutes into the second period.
But Warriors continued to battle and Jonny Arr reduced the deficit to give the visitors hope.
Sale searched for a fourth try as Warriors defended bravely and Leota’s late score confirmed the victory for Steve Diamond’s men.
Director of Rugby Dean Ryan named an unchanged side following Warriors’ opening-night 13-12 victory over Northampton Saints.
And the away support were on their feet early on as Cooper Vuna intercepted a loose pass before striding forward.
However, the Australian international didn’t have any support and the hosts won possession.
Sale gradually worked their way downfield, winning penalty after penalty, and after camping just metres away from the tryline the hosts went ahead as Cipriani found a gap to dive over.
A spell of kicking tennis ensued before the Sharks pressed for the tryline once again.
They perhaps should have scored when Leota was in space down the right but a wayward pass meant Warriors had time to recover.
And the hosts were soon punished when Mills landed a kick from behind the halfway line.
Sale continued to pile the pressure on, but resilient defending meant Ryan’s men thwarted the Manchester outfit.
And when Cipriani was presented with a chance at goal, the stand-off couldn’t produce the goods as the score remained 5-3.
Warriors fought back and it was Mills again from the halfway who delighted the travelling support with another fine kick to give his side a 6-5 lead.
As both teams looked to take a stranglehold on the game, Sale were awarded a penalty after a challenge in the air from Chris Pennell, and Seymour finished it off to put the hosts back ahead.
Sale continued to press for a third try as Warriors were forced to defend inside their 22, but the hosts had to settle for three points in front of the posts as Cipriani finally notched his first kick of the night at the fourth attempt.
Ryan’s men looked to regroup at the break but Sale began the second period on the front foot as Cipriani raced down the wing before surrendering possession to Pennell.
But it mattered not as moments later giant number eight Beaumont grabbed the ball from a home scrum and stole in to dot down.
With 14 points between the sides, Warriors made changes and searched for a way back into the game as Darren Barry drove into his opponents’ 22.
The visitors moved the ball out to the left but Phil Dowson was unable to find the tryline as Sale defended valiantly.
Beaumont continued to be influential to his side as his kick towards the tryline found touch just metres out – an attack which eventually came to nothing.
Tevita Cavubati came on for his Warriors debut but it was Sale who looked the more dangerous of the sides as they looked for a four-try bonus point.
Biggs was posing a constant threat when Warriors did find possession and raced down the right on the hour mark, before being halted on the 22-metre line.
And, after good work from Pennell, Warriors were awarded a scrum as they found themselves metres from the whitewash.
The visitors pushed forward and were eventually rewarded as Arr exploited the space and danced his way to the tryline.
Lamb converted from the tightest of angles to put Warriors back in bonus-point territory at 20-13 behind.
Suddenly Warriors came alive as the travelling support sensed a comeback but Sale had no intention of letting their lead slip with a first win of the season on the horizon.
Cipriani was putting the Sale backs on the attack and Wynand Olivier was forced to make a last-ditch tackle for Warriors, with Tom Arscott racing towards the line.
But Sale did finally get their bonus-point try with the last play of the game to send Warriors home empty-handed.
Warriors: 15 Chris Pennell, 14 Tom Biggs, 13 Wynand Olivier, 12 Ryan Mills, 11 Cooper Vuna (Howard 39), 10 Tom Heathcote (Lamb 45), 9 Jonny Arr (Mulchrone 65); 1 Na’ama Leleimalefaga (Rapava Ruskin 45), 2 Niall Annett, 3 Nick Schonert (Rees 28 [Schonert 35] 65), 4 Donncha O’Callaghan, 5 Darren Barry (Cavubati 51), 6 Phil Dowson, 7 Marco Mama (Cox 45), 8 GJ van Velze (C)
Replacements: 16 Dan George, 17 Val Rapava Ruskin, 18 Joe Rees, 19 Tevita Cavubati, 20 Matt Cox, 21 Charlie Mulchrone, 22 Ryan Lamb, 23 Ben Howard
7m: Cipriani try 5-0
17m: Mills pen 5-3
28m: Mills pen 5-6
32m: Seymour try 10-6
40m: Cipriani pen 13-6
44m: Beaumont try 18-6
45m: Cipriani con 20-6
64m: Arr try 20-11
65m: Lamb con 20-13
80m: Leota try 25-13
80m: Cipriani 27-13