The Swiss, who had Valon Behrami dismissed in the first half, set a new World Cup record for time without conceding a goal, but Gonzalez eventually made the breakthrough with 15 minutes remaining at Nelson Mandela Bay Stadium.
Chile, after defeating Honduras in their opening game, were able to welcome back their main goal threat in Humberto Suazo, who was the top scorer in South American qualifiers but suffered a hamstring injury ahead of the tournament.
Switzerland striker Alexander Frei was also available following an ankle complaint but he was substituted before half-time following Behrami's dismissal.
Referee Khalil Al Ghamdi had already brandished four yellow cards before sending the West Ham midfielder to the dressing room.
Behrami was right in front of the assistant referee when he palmed away Jean Beausejour then took a swipe at Arturo Vidal with his right arm.
It was seen by the Swiss bench as a soft red card - and Behrami took his time to leave the field of play - but replays showed the 25-year-old had connected with his opponents.
Chile inevitably had more possession and forged chances when Vidal fired wide from long distance and Suazo headed over from an inviting cross.
Vidal had forced Diego Benaglio into a save earlier with a swerving effort, while Alexis Sanchez had the best chance of the first half but fired straight at the Switzerland goalkeeper.
Suazo was taken off at the break, along with Vidal, and Chile coach Marcelo Bielsa introduced Jorge Valdivia and Gonzalez.
The South Americans thought the substitutions had paid off three minutes after the restart when Sanchez's shot deflected in after a free-kick pulled back to the edge of the area - but three of his team-mates were in offside positions.
Sanchez had another opportunity when he caught Stephane Grichting in possession and raced through on goal, forcing a decent save from Benaglio.
The breakthrough came when Esteban Paredes burst through, rounded the goalkeeper and crossed for Gonzalez to head home from close range off the crossbar.
Switzerland could have grabbed an equaliser but Eren Derdiyok fired wide in the last minute from close range.
Chile (4-3-3): Bravo; Ponce, Isla, Medel, Jara; Carmona, Vidal (Gonzalez 46), Fernandez (Paredes 64); Sanchez, Suazo (Valdivia 46), Beausejour.
Subs (not used): Pinto, Marin, Fuentes, Contreras, Estrada, Fierro, Millar, Tello, Orellana.
Switzerland (4-4-1-1): Benaglio; Lichtsteiner, Grichting, Von Bergen, Ziegler; Behrami, Inler, Huggel, Fernandes (Bunjaku 77); Frei (Barnetta 42), Nkufo (Derdiyok 68).
Subs (not used): Magnin, Wolfli, Padalino, Yakin, Schwegler, Leoni, Eggimann, Shaqiri.