Mary (Saoirse Ronan) is the Queen of Scotland but has claim to the English throne, which threatens Queen Elizabeth (Margot Robbie).
Elizabeth wants to weaken Mary’s claim by having her marry an Englishman, but when she ends up marrying Lord Darnley (Jack Lowden), her claim is only strengthened. Various forces conspire to weaken Mary, including spreading a lie that she is having an affair with her friend David Rizzio (Ismael Cruz Cordova), who is actually gay. Darnley assists in murdering Rizzio in front of Mary. Mary’s half-brother, the Earl of Moray (James McArdle), leads a rebellion against Mary supported by Elizabeth, but eventually, she pardons him in exchange for proof the Darnley betrayed her. She banishes him, and her council has him murdered and forces Mary to quickly marry a Scotsman, Bothwell (Martin Compston) – this was a plan to make Mary look even worse in the eyes of the people, and Moray usurps her and asks her to abdicate. She refuses and flees to England where she hides for years after striking a deal of sorts with Elizabeth. Later, evidence is presented to Elizabeth that Mary has conspired to kill her, and though its legitimacy is in question, Mary orders her executed. Later, Mary’s son James will become the first ruler to preside over England and Scotland together, finally uniting the two countries.
The situation progressively deteriorates for Mary (Saoirse Ronan) after her Council has Darnley (Jack Bowden) killed. She is forced to separate from Baby James -who stays under the care of her half-brother, the Earl of Moray (James McArdle)- and go into hiding. Soon after, her closest trusted advisor, the Earl of Bothwell (Martin Compston) forcefully coaxes her to marry him, “for her own good”, which she reluctantly does. Meanwhile, John Knox (David Tennant), whom Mary had banished from her Court earlier in the film and has been rallying an uprising against her since, is openly preaching that Mary is a murderous “harlot” (whore), unworthy of the Crown. This moves the entire Council, led by Moray to force her to abdicate and flee to England, which she does.
A secret meeting between Mary and Elizabeth (Margot Robbie) takes place, in which Mary begs Elizabeth to help her back into the throne but, instead, Elizabeth offers to safely harbour her in exchange for “not aiding her enemies”. The meeting quickly sours up as it becomes evident that Elizabeth deeply resents Mary for her being everything she could never be, and Mary, being a rightful heir to both the English and Scottish thrones, would always see Elizabeth as an inferior who was now just taking advantage of Mary’s own predicament.
Elizabeth decides to place Mary under a house-arrest-like situation. Time passes and Elizabeth -who, by this point, has consolidated herself as the historically-known “Virgin Queen”- receives overwhelming evidence of what is known as “The Babbington Plot”, which looked to have her killed and replaced by Mary. In voice-over, we hear Elizabeth extend a letter to Mary, explaining her the unavoidable decision of having her executed, while we see her signing the corresponding Edict amidst her Privy Council.
While Mary is taken to the scaffold, we see Elizabeth weep for her cousin and Mary shows she is wearing a red dress -thus proclaiming herself a martyr-. Before she is beheaded, she wishes her son -shown as an adult, himself on the throne- well and that he may bring peace upon the unified land.
Title cards inform that the Mary’s role on the Babbington Plot is still disputed and, after Elizabeth’s death, James went on to become the King of the unified England and Scotland.
In 1561, Mary (Saoirse Ronan), Queen of Scotland, returns from France to her half-brother the Earl of Moray’s (James McArdle) home in Scotland after her husband’s death. In England, her cousin, Elizabeth (Margot Robbie) is the Queen of England – she has been unable to produce an heir, and is threatened by Mary’s potential claim to the throne. John Knox (David Tennant), a Protestant cleric on Mary’s council, is incensed about a Catholic being in charge of the country and is rude, and so Mary has him removed from the council.Elizabeth wants to control Mary and weaken her claim to the throne and thinks the best way to do this would be to marry her to an English citizen. She is in love with Robert Dudley (Joe Alwyn) but decides to offer him to Mary. He protests, only wanting to be with her, but Elizabeth sends him anyone. However, once she meets with Dudley, Mary refuses to marry him, since he is just a citizen and not a royal – unless she is named the next in line to the English throne. Elizabeth balks but is stricken with smallpox. Hearing of her impending death, Mary agrees to marry Dudley – once she is named the successor. Elizabeth, not genuinely wanting to let Dudley go, sends Lord Darnley (Jack Lowden) to Scotland. He claims to only be there for the religious freedom, but Mary knows that can’t be true. He is charming, however, and their bond grows until eventually, he proposes.
Because Jack is a lord, he actually strengthens Mary’s claim to the throne, and Elizabeth’s advisors tell her to put a stop to the marriage and send Dudley. Mary’s council itself is also suspicious of Darnley’s motives, assuming he wants to take over their country on behalf of England. The English come to Scotland and demand Darnley return to England, but Mary refuses, since she’s doing as asked and marrying an Englishman. This enrages Moray, who doesn’t want to go to war over his sister’s passion. He leaves the council, furious.
England supports Moray in a rebellion against Mary. Mary and Darnley marry, but the next morning Mary finds him in bed with her male friend David Rizzio (Ismael Cruz Cordova). She is upset but has a rebellion to deal with. Rizzio goes to Mary, sorry and begging for forgiveness – Mary does indeed forgive him, saying they both fell for Darnley’s charms and that going forward they must be careful. Mary’s forces are able to quash the rebellion, and she spares Moray’s life. She then forces Darnley to have sex with her so that she can conceive an heir. When she announces her pregnancy, she declares the child the “heir to Scotland and England,” which naturally greatly offends the English.
Moray meets with Darnley’s father Matthew (Brendan Coyle) to hatch a plan to undermine Mary. A rumor starts that David is actually the father of Mary’s child and that she is an adulterer, which gives Knox fuel to preach to the Scottish that Mary is an evil woman. The underminers meet with Darnley, telling him he needs to sign the bond of their plan to remove Rizzio. He refuses, but his father warns him that in the public perception either he is the adulterer or Mary is – and this way no one needs to know of his homosexuality. He reluctantly signs. Mary, her handmaids, and Rizzio are playing games upstairs when the men burst in to execute Rizzio. Mary physically stands in the way but is unable to stop them as they stab Rizzio over and over, to her horror. Matthew insists Darnley deliver the killing blow.
The men bring Moray back into the fold, and they demand pardons for all the rebels. Mary wants to know if Darnley knew of the plot and they tell her he signed a bond. She agrees to the pardon if they can prove Darnley knew, and they agree. She makes peace with Moray and wants him to be an uncle to her child. She writes Elizabeth, asking her to be the godmother. They strike a deal: if Elizabeth has children, they will be heirs to the throne, but if not, it will be Mary’s child – much to the chagrin of Elizabeth’s council. Mary confronts Darnley with his signature and banishes him from her sight. He is angry, wanting to be with his child, but she tells him he’s lucky to keep his life. Mary’s council begs her to divorce him, claiming he still plots to take the throne, but she refuses to be a Queen who keeps getting married over and over. The council approaches Bothwell (Martin Compston) an advisor and protector of Mary’s, and they all arrange to have Darnley killed.
In the ensuing melee after Darnley’s death, Mary is forced to leave her child with the handmaids and flee. The very next day, Bothwell tells her that the council says she needs to marry a Scotsman as soon as possible and they’ve decided on him. Mary doesn’t want to, but faced with seemingly no choice, she goes through with it. This gives Knox more fuel to preach that Mary is a harlot and that she had Darnley killed herself. Moray and other advisors tell Mary she must abdicate and that the country doesn’t trust her. Bothwell is furious, but Mary tells him he’s a fool – this was their plan all along to remove her. Moray begs her to abdicate so they can be a family. Mary says he’s holding her son hostage, and that they are no longer family. She refuses to abdicate.
Elizabeth is sad to hear of what has been happening, and the two cousins arrange a clandestine meeting. Elizabeth tells Mary no one can know of the meeting. Mary asks for help getting her throne back, but Elizabeth tells her she cannot go to war on a Catholic’s behalf. Mary offers to kneel but Elizabeth sadly still refuses but says that she is safe in England. Elizabeth tells Mary as long as she does not aid her enemies, she will be unharmed. Mary says if she does so, it will only be because Elizabeth pushed her there, and if she murders her, she murders her own sister. Elizabeth orders Mary hidden away in England.
Later, Elizabeth receives evidence that indicates Mary conspired with her enemies to kill her. She doesn’t know if it’s true but has no choice but to act, and orders Mary’s execution. Elizabeth cries for Mary, and Mary is walked to her execution and reveals a bright red dress. In her last thoughts, she wishes her son James well and hopes for peace upon his reign.
Post-script tells us that upon Elizabeth’s death, James became the first monarch to rule England and Scotland.