The Aspar Team rider from Toomebridge was eighth at the start of the final lap but a crash helped him move up to fourth to collect 13 points.
Laverty is eighth in the standings and a tally of 17 points from two races already surpasses his 2015 total.
Marc Marquez won the race to take the overall series lead with Valentino Rossi second and Dani Pedrosa in third.
Laverty managed just nine points last season and his 12th in the 2016 opener in Qatar indicated a major improvement.
The 29-year-old was just one place away from a podium finish and emulating the feat of fellow Northern Ireland rider Jeremy McWilliams in 2000.
"I never expected to get fourth - that was incredible," said a delighted Laverty.
"After the preseason we had, I can't ask for more than 13 points in the second race of the season.
"Last year I managed nine points over the whole championship so to get 13 in one race is great recompense for myself and for the team, who kept faith in me and let me work my way back in testing."
Eugene Laverty secured his top placing in a MotoGP race by coming in a superb fourth in Argentina.