La quatrième collaboration entre Gilbert & Sullivan fut leur premier grand succès: "HMS Pinafore" (ou "La fille qui aimait un marin"). Il a ouvert ses portes le 25 mai 1878 à l'Opéra Comique où il s'est joué pour une très longue série de 571 représentations. Des tournées ont répandu sa popularité dans toute la Grande-Bretagne et en Amérique, de nombreuses compagnies ont "piraté" l'œuvre en mettant en scène des productions sans le consentement des auteurs et sans leur payer de droits d'auteurs. Gilbert, Sullivan et Carte ont tenté de battre les "pirates" en montant leur propre production à New York. Aujourd'hui, "HMS Pinafore" reste l'un des opéras de Gilbert et Sullivan les plus populaires.
Acte I
Le navire de guerre britannique H.M.S Pinafore est à l'ancre au large de Portsmouth. Les marins sont sur la plage arrière du vaisseau, en train de fièrement « nettoyer la dinanderie, border le cordage, etc. ». Little Buttercup, équivalent à petit bouton d'or, est une femme travaillant sur un canot d'approvisionnement de Portsmouth (i.e. vendeuse sur le quai) et décrite comme « la beauté de Spithead la plus ronde, rousse et aux joues roses ». Elle vient à bord pour vendre ses marchandises à l'équipe et insinue qu'elle pourrait cacher un lourd secret sous son « extérieur joyeux et frivole ». Ralph Rackstraw, « le gars le plus malin de toute la flotte », entre, déclarant son amour pour Josephine, la fille du capitaine. Ses collègues marins offrent leur soutien, à l'exception du sévère et laid Dick Deadeye qui est le réaliste de l'équipage, mais laissent à Ralph peut d'espoir que son amour puisse être réciproque.
Le distingué et populaire capitaine salut son « vaillant équipage » et les complimente sur leur politesse, ajoutant qu'il en fait de même en n'usant jamais (« bon, à peine ») de vulgarité, telles que « a big, big D ». Après que les marins sont partis, le capitaine admet à Little Buttercup que Josephine est réticente quant à la proposition de mariage de Sir Joseph Porter, le ministre de la marine. Buttercup répond qu'elle sait ce que c'est que d'aimer en vain. Alors qu'elle part, le capitaine fait la remarque qu'elle est une « personne rondelette et plaisante ». Josephine entre et révèle à son père qu'elle aime un humble marin de son équipage, mais elle affirme à son père qu'elle est une fille obéissante et qu'elle ne révèlera jamais son amour au marin.
Sir Joseph monte à bord, accompagné par sa « cour admirative de sœurs, cousines et tantes ». Il raconte comme il s'éleva de ses débuts modestes jusqu'à être « le chef de la marine de la Reine » grâce à sa persévérance, et bien qu'il n'ait pas de compétences en marine. Il délivre alors une leçon humiliante de convenances, disant au capitaine qu'il doit toujours ajouter « s'il vous plaît » après avoir donné un ordre, car « un marin britannique est l'égal de tout homme », sauf Sir Joseph. Il a composé une chanson pour illustrer ce qu'il a déclaré, et il en donne une copie à Ralph. Peu après, rendu euphorique par les positions de Sir Joseph sur l'égalité, Ralph décide qu'il déclarera son amour à Josephine. Ceci enchante ses compagnons de bord, sauf Dick Deadeye, qui soutient que « lorsque les gens doivent obéir aux ordres d'autres, l'égalité est hors de question ». Choqué par ses mots, les autres marins forcent Dick à écouter la chanson de Sir Joseph avant qu'ils partent, laissant Ralph seul sur le pont. Josephine fait alors son entrée, et Ralph avoue son amour en des termes étonnamment éloquents pour un « simple marin ». Josephine est touchée, mais bien qu'elle ait trouvée les soins de Sir Joseph écœurants, elle sait qu'il est de son devoir d'éprouver Sir Joseph au lieu de Ralph. Dissimulant ses sentiments réels, elle « rejette de manière hautaine [...] l'amour offert » par Ralph.
Ralph appelle ses compagnons de bord, et les dames de la famille de Sir Joseph arrivent également. Il leur déclare qu'il va céder au suicide et reçoit la compassion de l'équipage sauf de Dick, qui émet une vue contraire sans mâcher ses mots. Ralph place un pistolet contre sa tête mais, alors qu'il va presser la détente, Josephine entre et admet qu'elle l'aime en réalité. Ralph et Josephine projettent de rallier jusqu'à la rive sans se faire remarquer, afin de s'enfuir pour se marier pendant la nuit. Dick Deadeye leur conseille de « renoncer, ne pas mettre le plan à exécution » mais la joyeuse compagnie du bateau l'ignore.
Acte II
Plus tard la même nuit, sous une pleine lune, le capitaine Corcoran passe en revue ses inquiétudes : son « équipage bienveillant se rebelle », sa « fille a un faible pour un matelot », ses amis semblent l'abandonner, et Sir Joseph l'a menacé de tribunal militaire. Little Buttercup offre son soutien. Le capitaine lui dit que, s'il n'y avait pas de différence entre leurs classes sociales, il lui aurait également montré son affection. Elle prédit que les choses ne sont pas comme elles le semblent et qu'un « changement » l'attend, mais il ne comprend pas son avertissement énigmatique.
Sir Joseph entre et se plaint que Josephine n'ait pas accepté de l'épouser. Le capitaine suppose qu'elle est probablement éblouie par son « haut rang » et que si Sir Joseph peut la persuader que « l'amour aplanit tous les rangs » (c'est-à-dire que l'amour fait fi des classes sociales), alors elle acceptera sa demande en mariage. Ils se retirent et Josephine entre, se sentant toujours coupable quant à la fugue amoureuse qu'elle a planifiée avec Ralph, et craignant de laisser derrière elle une vie de luxe.
Dick Deadeye arrête le capitaine au passage et lui dévoile les plans des amoureux pour leur fugue. Le capitaine confronte Ralph et Josephine alors qu'ils essayent de quitter le bateau. Ils lui déclarent leur amour, justifiant leurs actions car « C'est un Anglais ! ». Le capitaine furieux y est insensible et laissa échappe « Pourquoi, merde, c'est vraiment dommage ! » Sir Joseph et sa famille, qui ont surpris le juron, sont choqués d'entendre jurer à bord d'un bateau, et Sir Joseph ordonne ce que le capitaine soit consigné dans sa cabine. Lorsque Sir Joseph demande ce qui a provoqué l'explosion de l'officier habituellement poli, Ralph répond que c'est sa déclaration d'amour pour Josephine. Furieux à son tour face à cette révélation, et ignorant les supplications de Josephine pour épargner Ralph, Sir Joseph fait « charger de chaînes » le marin et l'envoie aux arrêts. Little Buttercup se présente alors pour révéler son secret longtemps gardé. Il y a de nombreuses années, lorsqu'elle était une jeune bonne d'enfants, elle s'occupait de deux bébés, l'un « de faible classe sociale » et l'autre « un patricien habituel ». Elle avoue qu'elle « mélangea les enfants... celui bien-né était Ralph, et votre capitaine était l'autre ».
Sir Joseph réalise alors que Ralph devrait avoir été capitaine, et vice-versa. Il les fait venir, et ils se présentent portant l'uniforme l'un de l'autre : Ralph comme capitaine, commandant du Pinafore, et Corcoran comme un simple marin. Le mariage de Sir Joseph avec Josephine est à présent « hors de question » à ses yeux : « l'amour fait fi de toutes les classes sociales... jusqu'à un degré considérable, mais pas autant que ça! ». Il la donne alors au nouveau capitaine Rackstraw. Le rang social à présent humble de l'ancien capitaine lui permet d'épouser Buttercup... Sir Joseph choisit alors sa cousine Hebe, et tout finit en réjouissances générales.