Jack Owens scored a try in each half as Widnes Vikings survived a second-half Warrington Wolves comeback.
Owens, Rhys Hanbury and Paddy Flynn all crossed before half-time as the hosts opened up a 16-point lead.
Cameron Phelps looked to have made the game safe, but quick tries from Ryan Atkins and Chris Bridge made it 24-10.
Owens grabbed his second of the game before Stefan Ratchford went over for Wolves, but Widnes held for the bragging rights in the local derby.
Warrington remain fifth in the Super League table, while eighth-placed Widnes are three points clear of Hull KR, in ninth, who have a game in hand.
Danny Tickle converted the first try of the night from Owens, who latched onto a cut-out pass on the left flank.
Hanbury exploited a massive gap in the Warrington defence to go over and Flynn scored the home side's third try, after Stef Marsh's flick pass out of the back door created the opportunity.
The Vikings' 16-0 half-time lead was extended when Phelps finished off Flynn's weaving run.
Atkins' special solo try was followed by Bridge going over to give Warrington a glimmer of hope, but Owens collected Kevin Brown's kick for his second try.
Ratchford grabbed the visitors' third try but it was too little too late.
Widnes coach Denis Betts:
"It's been coming the last couple of weeks. We've had a few solid performances but not getting the result.
"To hold a nil lead for Warrington, such a fantastic attacking team, was a great plus in the first half. And then to withstand it and score more points was a great performance for a lot of our players.
"Everyone did their job. Our pack was massive and there's not a player who didn't give us something."
Warrington coach Tony Smith:
"Widnes took their chances well. We didn't take our opportunities, we didn't create enough.
"We were boring and didn't ask enough questions. Our opponents were good and took their chances.
"I thought Widnes out-enthused us at crucial times and I think our team will respond and fix things up.
"We accept defeat and will work harder, improve and be stronger next week."
Widnes: Hanbury, Owens, Phelps, Marsh, Flynn, Brown, Mellor, Cahill, Clarke, Gerrard, Galea, Tickle, Leuluai.
Replacements: Allen, Kavanagh, Isa, Carberry.
Warrington: Russell, Ormsby, Ratchford, Atkins, R. Evans, C. Bridge, O'Brien, Hill, Higham, England, Currie, Westwood, Wood.
Replacements: Asotasi, Riley, Dwyer, Philbin.
Referee: Phil Bentham (RFL).