The Golden State Warriors wrapped up a comfortable win over the Brooklyn Nets to improve their unbeaten start to the season to 22 games.
Thaddeus Young got Brooklyn back into the game either side of half time, leaving the hosts just four points back at the start of the fourth quarter, but Leandro Barbosa and Marreese Speights quickly re-established the gap for the Warriors.
The Suns battled back from five points down inside the final two minutes before Brandon Knight missed a couple of chances to lift Phoenix to victory, but Green managed to get down the other end with 0.5 seconds remaining to avoid overtime.
John Wall made a bright start for the home side, finishing the game with 28 points before injuring his knee in the fourth quarter.
Matthews saved his best shooting for the second half though, adding 28 after half time to lift the visiting team to their 12th win of the campaign.
After a closely-fought first half, the Thunder started to pull ahead in the third, with Enes Kanter and Russell Westbrook leading the charge, but Kevin Durant struggled, making 10 turnovers during the game.
Sacramento responded in the fourth, with Marco Belinelli putting the visitors ahead inside the final four minutes, but Durant but Oklahoma City back ahead with 23 seconds remaining.
Louis Williams added some late points for the visitors, but the Lakers could not close to gap to fewer than 10 in the fourth quarter, leaving the team with nine defeats in their last 10 games.
Results in full: Phoenix Suns 93-95 Memphis Grizzlies, Golden State Warriors 114-98 Brooklyn Nets, Los Angeles Lakers 91-111 Detroit Pistons, Dallas Mavericks 116-104 Washington Wizards, Sacramento Kings 95-98 Oklahoma City Thunder