Andre Ayew’s 73rd-minute goal cancelled out Cristiano Ronaldo’s penalty and appeared to have given the Stars a new lease of life.
However, goals from Joao Felix and Rafael Leao in the 78th and 80th minutes put Portugal back in control.
Osman Bukari headed home a second for the Black Stars but the Portuguese held on, despite nine added minutes to pick up all three points.
The defeat would have been hard for Otto Addo’s men who stifled Portugal for much of the first half and the beginning of the second.
Ghana even looked more dangerous than they had in the first half, as Kudus flashed a shot just wide after a surging run.
It was Portugal, however, who broke the deadlock from a controversial penalty.
Mohammed Salisu was adjudged to have taken down Cristiano Ronaldo in the box by the referee, who stuck to his guns despite the protests from the Ghanaians.
Ronaldo stepped up and fired home clinically to put Portugal ahead.
The lead lasted only five minutes as Kudus Mohammed, who had troubled the Portuguese with his speed and skill all game flashed in a cross from the left which was tapped home by Andre Ayew.
Disaster struck moments later when Baba Rahman failed to deal with a through pass. Joao Felix pounced on the loose ball and finished beautifully.
Substitute Rafael Leao rushed through on goal and slid the ball past Lawrence Ati Zigi.
Ghana looked down and out but were handed some hope when Osman Bukari headed home Baba Rahman’s cross.
Nine minutes of injury time flew by as the Stars searched for an equaliser and they almost found it when Inaki Williams snuck in behind Diogo Costa to steal the ball but slipped at the crucial moment.
The win takes Portugal top of the group but the 0-0 draw between South Korea and Uruguay earlier in the day means today’s loss might not prove to be too costly for the Black Stars.