The Spanish Tragedy begins with the ghost of Don Andrea, a Spanish nobleman killed in a recent battle with Portugal. Accompanied by the spirit of Revenge, he tells the story of his death; he was killed in hand-to-hand combat with the Portuguese prince Balthazar, after falling in love with the beautiful Bel-Imperia and having a secret affair with her. When he faces the judges who are supposed to assign him to his place in the underworld, they are unable to reach a decision and instead send him to the palace of Pluto and Proserpine, King and Queen of the Underworld. Proserpine decides that Revenge should accompany him back to the world of the living, and, after passing through the gates of horn, this is where he finds himself. The spirit of Revenge promises that by the play's end, Don Andrea will see his revenge.
Andrea returns to the scene of the battle where he died, to find that the Spanish have won. Balthazar was taken prisoner shortly after Andrea's death, by the Andrea's good friend Horatio, son of Hieronimo, the Knight Marshal of Spain. But a dispute ensues between Horatio and Lorenzo, the son of the Duke of Castile and brother of Bel-Imperia, as to who actually captured the prince. The King of Spain decides to compromise between the two, letting Horatio have the ransom money to be paid for Balthazar and Lorenzo keep the captured prince at his home. Back in Portugal, the Viceroy (ruler) is mad with grief, for he believes his son to be dead, and is tricked by Villuppo into arresting an innocent noble, Alexandro, for Balthazar's murder. Diplomatic negotiations then begin between the Portuguese ambassador and the Spanish King, to ensure Balthazar's return and a lasting peace between Spain and Portugal.
Upon being taken back to Spain, Balthazar soon falls in love with Bel-Imperia himself. But, as her servant Pedringano reveals to him, Bel-Imperia is in love with Horatio, who returns her affections. The slight against him, which is somewhat intentional on Bel-Imperia's part, enrages Balthazar. Horatio also incurs the hatred of Lorenzo, because of the fight over Balthazar's capture and the fact that the lower-born Horatio (the son of a civil servant) now consorts with Lorenzo's sister. So the two nobles decide to kill Horatio, which they successfully do with the aid of Pedringano and Balthazar's servant Serberine, during an evening rende-vous between the two lovers. Bel-Imperia is then taken away before Hieronimo stumbles on to the scene to discover his dead son. He is soon joined in uncontrollable grief by his wife, Isabella.
In Portugal, Alexandro escapes death when the Portuguese ambassador returns from Spain with news that Balthazar still lives; Villuppo is then sentenced to death. In Spain, Hieronimo is almost driven insane by his inability to find justice for his son. Hieronimo receives a bloody letter in Bel-Imperia's hand, identifying the murderers as Lorenzo and Balthazar, but he is uncertain whether or not to believe it. While Hieronimo is racked with grief, Lorenzo grows worried by Hieronimo's erratic behavior and acts in a Machiavellian manner to eliminate all evidence surrounding his crime. He tells Pedringano to kill Serberine for gold but arranges it so that Pedringano is immediately arrested after the crime. He then leads Pedringano to believe that a pardon for his crime is hidden in a box brought to the execution by a messenger boy, a belief that prevents Pedringano from exposing Lorenzo before he is hanged. Negotiations continue between Spain and Portugal, now centering on a diplomatic marriage between Balthazar and Bel-Imperia to unite the royal lines of the two countries. Ironically, a letter is found on Pedringano's body that confirms Hieronimo's suspicion over Lorenzo and Balthazar, but Lorenzo is able to deny Hieronimo access to the king, thus making royal justice unavailable to the distressed father. Hieronimo then vows to revenge himself privately on the two killers, using deception and a false show of friendship to keep Lorenzo off his guard.
The marriage between Bel-Imperia and Balthazar is set, and the Viceroy travels to Spain to attend the ceremony. Hieronimo is given responsibility over the entertainment for the marriage ceremony, and he uses it to exact his revenge. He devises a play, a tragedy, to be performed at the ceremonies, and convinces Lorenzo and Balthazar to act in it. Bel-Imperia, by now a confederate in Hieronimo's plot for revenge, also acts in the play. Just before the play is acted, Isabella, insane with grief, kills herself.
The plot of the tragedy mirrors the plot of the play as a whole (a sultan is driven to murder a noble friend through jealousy over a woman). Hieronimo casts himself in the role of the hired murderer. During the action of the play, Hieronimo's character stabs Lorenzo's character and Bel-Imperia's character stabs Balthazar's character, before killing herself. But after the play is over, Hieronimo reveals to the horrified wedding guests (while standing over the corpse of his own son) that all the stabbings in the play were done with real knives, and that Lorenzo, Balthazar, and Bel-Imperia are now all dead. He then tries to kill himself, but the King and Viceroy and Duke of Castile stop him. In order to keep himself from talking, he bites out his own tongue. Tricking the Duke into giving him a knife, he then stabs the Duke and himself and then dies.
Revenge and Andrea then have the final words of the play. Andrea assigns each of the play's "good" characters (Hieronimo, Bel-Imperia, Horatio, and Isabella) to happy eternities. The rest of the characters are assigned to the various tortures and punishments of Hell.