An American familyâDr. Benjamin "Ben" McKenna (James Stewart), his wife, popular singer Josephine Conway "Jo" McKenna (Doris Day), and their son Henry "Hank" McKenna (Christopher Olsen)âare vacationing in Morocco. Traveling from Casablanca to Marrakesh, they meet Frenchman Louis Bernard (Daniel Gelin). He seems friendly, but Jo is suspicious of his many questions and evasive answers.
Louis offers to take the McKennas out to dinner, but cancels when a sinister-looking man knocks at the McKennas' hotel-room door. Later, at a local restaurant, the McKennas meet friendly English couple Lucy (Brenda De Banzie) and Edward Drayton (Bernard Miles). The McKennas are surprised to see Bernard arrive and sit at another table, apparently ignoring them.
The next day, attending a busy outdoor market with the Draytons, the McKennas see a man being chased by police. After being stabbed in the back, the man approaches Ben, who discovers it is actually Louis in disguise. The dying Bernard whispers that a foreign statesman will be assassinated in London soon, and that Ben must tell the authorities there about "Ambrose Chappell". Lucy offers to return Hank to the hotel while the police question Ben and Jo. An officer explains that Louis was a French Intelligence agent on assignment in Morocco.
Ben is told via a phone call that Hank has been kidnapped but will not be harmed if the McKennas say nothing to the police about Bernard's warning.
In London, Scotland Yard's Inspector Buchanan (Ralph Truman) tells them Louis was trying to uncover an assassination plot, and that they should contact him if they hear from the kidnappers. Leaving friends in their hotel suite, the McKennas search for a man named "Ambrose Chappell" and find "Ambrose Chapel", where Drayton is leading a service. Ben confronts Drayton and is knocked out and locked in the chapel. The Draytons take Hank to a foreign embassy just before Jo arrives with police at the now-deserted chapel. Jo learns that Buchanan has gone to a concert at the Royal Albert Hall. There, she sees the sinister man who came to her door in Morocco. When he threatens to harm Hank if she interferes, she realizes that he is the assassin sent to kill the foreign Prime Minister (Alexis Bobrinskoy) at the concert.
Ben escapes and follows Jo to the Hall, where she points out the assassin. Ben searches the balcony boxes for the killer, who is waiting for a cymbal crash to mask his gunshot. Jo screams and the assassin misses his mark, merely wounding his target. Ben struggles with the would-be killer, who falls to his death from the balcony.
The grateful Prime Minister invites the McKennas to the embassy, where they learn that the Draytons and Hank are also there. The ambassador (Mogens Wieth) himself organized the plot to kill the Prime Minister.
The Prime Minister asks Jo to sing. She loudly performs "Que Sera, Sera (Whatever Will Be, Will Be)", so that Hank will hear her. Lucy is guarding Hank, but tells him to whistle along with the song, and Ben finds him. Drayton tries to escape with them at gunpoint, but when Ben hits him, he falls and dies accidentally.
The McKennas return to their hotel room. Ben explains to their now-sleeping friends, "I'm sorry we were gone so long, but we had to go over and pick up Hank."
Where did Buchanan go to a concert?
Royal Albert Hall