Paulo Bento's side, who open their European Championship campaign against Germany next Saturday, produced a criminal lapses to allow two Umut Bulut goals.
With Portugal two down, Nani struck a fine low shot into the corner, before Cristiano Ronaldo saw a penalty saved by Volkan Demirel.
And with Portugal pressing for an equaliser, the defensive calamity continued when Pepe scored an own-goal.
Bento selected a side with nine of the 11 players expected to start in Lviv, but handed a debut to right-back Miguel Lopes and gave Hugo Almeida a run-out up front.
Cristiano Ronaldo signalled the hosts' intent with a vicious free-kick that brought a fine save by Volkan.
Despite a positive start, poor positioning let Burak Yilmaz in for a one-on-one, which was well-saved by Rui Patricio.
Almeida deflected a header onto the Turkish bar, before Hamit Altintop fired a long-range free-kick onto the inside of the woodwork.
Bulut opened the scoring after 35 minutes when Sercan Sararer beat Lopes and squared - indecision from Bruno Alves and Fabio Coentrao allowed the striker to stab the ball home.
Almeida then produced a huge howler, declining to shoot when clean through and misplacing a pass intended for Coentrao instead, and just before the break, Volkan denied Ronaldo with a good one-on-one-save.
On 52 minutes, Bulut made it two after a horrible mix-up saw Miguel Veloso and Alves conspire to gift possession away at the edge of the box.
Nani quickly pulled one back with a brilliant shot from the right side of the box, before Emre fouled Lopes to give Portugal a penalty - but Ronaldo's shot was repelled by Volkan.
To add insult to injury, the 89th minutes saw goalkeeper Eduardo come for a cross and parry it onto Pepe. As the ball trickled goalwards, Ricardo Costa attempted to hack it clear - but it hits Pepe and went in.