Mexico finished atop Group B with seven points and will play the Group A runner-up on Saturday. Honduras, reaching the knockout round for the first time in three attempts, was second in Group D, two points behind Japan, and will play Brazil.
In Cardiff, Wales, Peralta capitalized on a fortunate bounce and Mexican goalkeeper Jesus Corona earned his third straight shutout to lead Mexico.
Switzerland had the better of play and chances until the second half, when Mexico began to dominate possession. Peralta had chances in the 52nd and 54th before getting another in the 69th.
Giovani Dos Santos, making his first start after entering as a substitute in Mexico's first two games and scoring twice against Gabon, dribbled at the top of the Swiss 18 before being challenged by Francois Affolter. He poked the ball, which slipped through the defender's legs.
It fell into the path of Peralta, who despite traffic in the middle of the area, was able to get off a low rolling shot which beat goalkeeper Diego Benaglio.
Inspired with the lead, Mexico continued to push forward, generating more possession and chances, with its best effort when Israel Jimenez's right-footed drive from the edge of the area was tipped by goalkeeper Benaglio and skimmed off the top side of the crossbar in the 84th.
In Coventry, goalkeeper Jose Mendoza recorded his second straight shutout, twice denying Japan in the final 10 minutes.
Mendoza had to backpedal to push Yuki Otsu's free kick over the crossbar in the 81st and two minutes later denied Kensuke Nagai at the left post.
Honduras, which played without suspended players Roger Espinoza and Orin Peralta, had its best moments in the first half. Maynor Figueroa's free kick was deflected by the edge of the wall and forced Japanese keeper Shuichi Gonda into a diving effort at the left post in the 42nd. A minute later, Johnny Leveron's header was blocked on the line by Kenyu Sugimoto.