Soldiers on guard at the station shot dead the attacker, who police described as of North African appearance and aged about 30. Witnesses said he shouted "Allahu akbar" (God is greatest).
So-called Islamic State (IS) said the attacker was one of its "soldiers".
One victim had her throat slit and the other was stabbed in the stomach. They were aged 17 and 20.
President Emmanuel Macron said he was disgusted by the "barbarous act" and paid tribute to the soldiers and the police officers who responded.
The attack took place by a bench outside the southern French city's Saint Charles train station.
Interior Minister Gérard Collomb told reporters that the attacker had fled after the first murder but returned to kill again.
Soldiers were already in the station as part of Operation Sentinelle, which sees combat troops patrol streets and protect key sites amid France's ongoing state of emergency.
IS claimed it was behind the attack via its Amaq news outlet. The group recently released a tape purportedly of leader Abu-Bakr al-Baghdadi in which he urged supporters to step up attacks.
This fits a pattern of recent attacks
Police are treating this as a terrorist attack, but there are plenty of question marks about the man and his motivation.
French media report that the killer was in his 20s with a police record for petty offences.
If so, that fits in with a steady pattern of recent attacks in France, carried out by individuals who seem to have a deep hatred of French authority, aggravated by exposure to Islamist ideas.
Terror attacks in France
7-9 Jan 2015 - Two Islamist gunmen storm the Paris offices of satirical magazine Charlie Hebdo, killing 17 people. Another Islamist militant kills a policewoman the next day and takes hostages at a Jewish supermarket in Paris. Four hostages are killed before police shoot the gunman dead. The other two gunmen are cornered and killed by police in a siege
13 Nov 2015 - IS jihadists armed with bombs and assault rifles attack Paris, targeting the national stadium, cafes and Bataclan concert hall. The co-ordinated assault leaves 130 people dead, and more than 350 wounded
13 Jun 2016 - A knife-wielding jihadist kills a police officer and his partner at their home in Magnanville, west of Paris. He declares allegiance to IS, and police later kill him
14 Jul 2016 - A huge lorry mows down a crowd of people on the Nice beachfront during Bastille Day celebrations, killing 86. IS claims the attack - by a Tunisian-born driver, later shot dead by police
26 Jul 2016 - Two attackers slits the throat of a priest at his church in Saint-Etienne-du-Rouvray, in Normandy. They are shot dead by police
3 Feb 2017 - A machete-wielding Egyptian man shouting "Allahu akbar" attacks French soldiers at Paris's Louvre Museum - he is shot and wounded
20 Apr 2017 - A known terror suspect opens fire at police on the Champs Elysees in Paris, killing one and wounding two. He is shot dead - and the assault is claimed by IS