Eduardo Vargas fired host nation Chile into the Copa America final with two goals against 10-man Peru.
After Carlos Zambrano's dismissal, Vargas put Chile ahead shortly before half-time.
Gary Medel's own goal drew Peru level, just reward for their strong performance, but a superb second from Vargas earned Chile a 2-1 win.
Vargas' third-minute shot was deflected behind by Carlos Ascues before Chile's Arturo Vidal escaped sanction in an early moment of controversy.
Defender Zambrano shielded the ball out of play with Vidal snapping at his heels, and as the pair squared up the Juventus midfielder foolishly pushed a hand into his opponent's face.
He was not even booked but Zambrano was two minutes later following a tangle with Alexis Sanchez, Venezuelan referee Jose Argote indicating the punishment was for the combination of both incidents.
Peru went close when Jefferson Farfan headed Paolo Guerrero's cross against the left post, and Guerrero was again the creator as Carlos Lobaton swung an effort into the side-netting.
But Peru's task was soon made harder. Zambrano cleanly cleared the ball but his exaggerated studs-up follow-through connected with the small of Charles Aranguiz's back and earned the Eintracht Frankfurt defender a straight red card. Vidal blasted the free-kick straight into the wall.
Jorge Valdivia's improvised effort looped over before Peru sacrificed Christian Cueva for defender Christian Ramos to fill the void left by Zambrano.
Valdivia went close again and Vargas was denied from close range by impressive right-back Luis Advincula's block.
Chile keeper Claudio Bravo crucially beat Farfan to Guerrero's low cross but it was Chile who took the lead three minutes before half-time. Sanchez's low cross was dummied by Aranguiz and rebounded off the far post for Vargas to finish scruffily.
He appeared just offside but Peru's ill luck evened itself out when Vargas' fine finish early in the second half was struck off by an immediate but erroneous flag.
Farfan's header from Advincula's cross was weak, while Valdivia's shot at the other end bounced harmlessly to keeper Pedro Gallese.
Peru stunningly drew level on the hour when Medel turned Advincula's cross past his own keeper Bravo with Guerrero lurking.
Parity, though, lasted only five minutes as Vargas took aim from 25 yards and sent a dipping, swerving shot into the far corner of the net.
Peruvian substitute Claudio Pizarro threatened with his first touch and Sanchez fired just over at the other end, as did Vidal with a spectacular left-footed effort.
Gallese saved Vidal's stoppage-time strike on the counter but Peru were unable to carve out a chance for an equaliser.