The 22-year-old Vinales, who switched from Suzuki at the end of last year, became the first Yamaha rider since U.S. great Wayne Rainey in 1990 to win the first two races of a season in the premier class.
Italian Valentino Rossi celebrated becoming the first rider to make 350 grand prix starts across all categories by finishing second behind his team mate, 2.915 seconds behind, at the Termas de Rio Hondo circuit.
Britain's Cal Crutchlow took third place for the non-works LCR Honda outfit after having to slow down and save fuel in the closing stages.
Vinales, who won the season-opener in Qatar last month, had started sixth on the grid but was up to third by the end of the first lap. He passed Crutchlow for second on lap three and then took the lead a lap later when Marquez fell at turn two.
Vinales has 50 points from two races with 38-year-old Rossi second and on 36. (Reporting by Alan Baldwin, editing by Clare Fallon)
Read the original article on Eurosport: Vinales wins in Argentina after Marquez crashes out