L'attaque a eu lieu vers 13H45 (11h45 GMT), sur le parvis de la gare Saint-Charles. Selon une source proche de l'enquête, l'assaillant, âgé d'une trentaine d'années et qui ne portait pas de papiers d'identité sur lui , "aurait crié Allah Akbar" en poignardant une femme et en en égorgeant une autre. Il était connu pour des faits de droit commun, selon des sources proches de l'enquête.
Selon le procureur de Marseille, l'assaillant a été abattu par les militaires de l'opération Sentinelle, mise en place après les attentats de janvier 2015 en France. Il est décédé.
Les victimes sont âgées de 17 et 20 ans, selon le syndicat Unsa-Police.
La section antiterroriste du parquet de Paris s'est saisie de l'enquête, ouverte notamment pour "assassinats en relation avec une entreprise terroriste" et "tentative d'assassinat sur personne dépositaire de l'autorité publique".
Les autorités ont demandé, sur les réseaux sociaux, aux Marseillais d'éviter le secteur de la gare Saint-Charles. Totalement interrompu, le trafic ferroviaire reprenait partiellement peu avant 17H30.
Vers 15H00, les alentours de la gare étaient bouclés par un cordon de policiers, et la circulation déviée, a constaté un journaliste de l'AFP. Plus de 200 policiers ont été mobilisés selon la Sécurité publique.
"J'ai entendu crier Allah Akbar, et j'ai vu un homme vêtu tout en noir, il me semble", a raconté à l'AFP Mélanie Petit, une étudiante de 18 ans. "Une personne s'est effondrée", et "il y a eu un temps de latence avant que les gens se mettent à courir".
La gare se situe tout près du centre-ville, non loin de la fameuse Canebière, artère mythique de la ville menant au Vieux Port.
Le ministre de l'Intérieur Gérard Collomb devait arriver sur place en fin d'après-midi. "Nous ne baissons pas la garde", a de son côté affirmé sur Twitter le Premier ministre Edouard Philippe, faisant part de sa "colère et tristesse pour les victimes".
A l'intérieur de la gare, "des gens, pas en treillis, peut-être des policiers en civil, nous criaient de partir. Beaucoup dans la foule restaient sur place", a raconté à l'AFP Jeanne, 33 ans.
Les forces de l'ordre "se sont mises en place et ont fait descendre les gens des trains. On a été regroupé au bout des quais avant d'être évacué", a relaté Guillaume, un autre jeune homme. Il a évoqué "une panique maîtrisée". "Les gens ne se marchaient pas dessus".
Ce nouvel attentat intervient deux jours avant le vote à l'Assemblée nationale d'un projet de loi antiterroriste controversé qui vise à transposer dans le droit commun certaines mesures de l'état d'urgence instauré par l'ancien gouvernement socialiste après les attentats du 13 novembre 2015 à Paris (130 morts).
Lundi débutera par ailleurs le procès pour complicité du frère de Mohamed Merah, qui avait tué au nom du jihad en mars 2012 sept personnes, dont trois enfants d'une école juive à Toulouse (sud-ouest) et dans ses environs.
Premier attentat jihadiste en France depuis ceux du GIA algérien en 1995, cette attaque avait replongé la France dans le terrorisme, révélant les failles du renseignement et poussant les pouvoirs publics à adapter l'arsenal répressif.
Depuis, la France a été frappée à de multiples reprises, notamment en janvier 2015 (17 morts), notamment contre le journal satirique Charlie Hebdo et une épicerie juive.
Hormis les deux victimes de dimanche, 239 personnes ont péri dans des attentats survenus en France depuis 2015.
"Face à ces meurtres barbares, notre espoir est (...) qu'on considère enfin le terrorisme pour ce qu'il est, un acte de guerre", a réagi Marine Le Pen, présidente du Front national (extrême droite).
"Marseille pleure avec ses pauvres victimes. L'assassin aussi répugnant que ses motifs", a déclaré sur Twitter le député de Marseille et chef de file de la France Insoumise (gauche radicale), Jean-Luc Mélenchon.