Tinnerholm blasted a left-footed volley to give NYCFC the lead in the 22nd minute. Villa's cross, off a feed from Jesus Medina, deflected high off Michael Ciani and Tinnerholm, a 27-year-old defender from Sweden, rifled it off the crossbar.
Sean Johnson made a diving save of a sliding half-volley by Ola Kamara in the 27th minute and Villa made it 2-0 in the 33rd.
Medina, on a counter-attack, touched it around a defender and then fed a left-footed cross to Ben Sweatt, whose shot from near the spot was stopped by a charging David Bingham. Villa tapped the rebound into the open net.
Jonathan Dos Santos re-directed a cross from Emmanuel Boateng past Johnson from very close range to cap the scoring in the 60th minute.
The Galaxy finished the match with 10 men after Ashley Cole was handed his second caution in the 85th minute for a hard foul on Villa.
New York City, which has lost just two regular-season home matches since June 2, 2016, outshot the Galaxy 20-7.
NYCFC 2-1 LA Galaxy: Villa heroic in 100th match - Via MLS
David Villa marked his 100th appearance for New York City FC with the winning goal as Patrick Vieira's side topped LA Galaxy.