Danilo gave Portugal a 1-0 lead with a leaping header in the 9th minute, and Nelson Oliveira doubled the lead with a penalty in the 40th. Portugal has won this title twice and will meet either Brazil or Mexico in Saturday's final in Bogota.
Portugal is on a successful run with its stout defending and its acrobatic keeper Mika, who has not yielded a goal in six consecutive tournament matches.
Portugal won the U-20 title in 1989 and 1991. A trophy this time would come 20 years after Luis Figo, Rui Costa and Joao Pinto led Portugal to the last one. France was in the U-20 semifinals for the first time.
France had 61 percent of possession in the match and dominated in the first half despite failing to score. In the second half it also controlled things, but had fewer chance to break through.
''I don't know of any team that has gone into a final without giving up a goal,'' Portugal Ilidio Vale said. ''This needs to be appreciated. We've had a great World Cup and we scored two goals today to answer critics who said we could not score.''
Vale brushed off any suggestion his team did not deserved to be in the final.
''The team plays with great organization, great heart and it plays smart,'' he said.
France coach Francis Smerecki also dismissed any criticism of Portugal's defensive style.
''There are various ways of playing football,'' he said. ''The big thing that hurt us today were our own major errors. ... The World Cup produces exceptional things. If Portugal can go without giving up a goal in this tournament, it will be a deserving champion.''
After Cedric Bakambu forced Mika to his knees to stop a shot in the first minute and Clement Grenier's 13-minute free kick was deflected over the crossbar, France had its best chance in the 84th but Loic Nego headed wide from in front of an open goal after the Portugal keeper had deflected an initial shot and fell back into the net.
Portugal, which had scored only three goals in its first five matches, went ahead early when Alex delivered a perfect corner that Danilo leaped high to meet and angled inside the near post.
In a contentious decision in the 40th, Turkish referee Cuneyt Cakir penalized France's Kalidou Koulibaly for tripping Danilo in the area. Nelson Oliveira converted the penalty, beating French keeper Jonathan Ligali who dived to his right.
Portugal defeated Uruguay 0-0 in its opening group match and then won back-to-back games 1-0 against Cameroon and New Zealand. It dispatched Guatemala 1-0 in the round-of-16, and then defeated Argentina 5-4 on penalties after a 0-0 draw through 120 minutes in the quarterfinals.