Les buts de Mbappé et le premier but d'Arda Güler en première mi-temps ont suffi aux Merengues pour conserver leur bilan parfait, Mikel Oyarzabal réduisant le score sur penalty pour les locaux.
L'équipe de Xabi Alonso est en tête du classement avec 12 points en quatre journées, l'Athletic Bilbao, deuxième, affrontant Alaves plus tard, tandis que le FC Barcelone, champion en titre, reçoit Valence dimanche.
Le Real s'est aligné avec Dani Carvajal au poste d'arrière droit, laissant Trent Alexander-Arnold sur le banc, tandis que Fede Valverde était au repos et Dani Ceballos a été titularisé.
Un but d'Güler a été refusé pour hors-jeu en début de rencontre alors que les Merengues démarraient fort, la Real Sociedad étant toujours à la recherche de sa première victoire sous la direction de son nouvel entraîneur, Sergio Francisco.
Mbappé a débloqué la situation après 12 minutes en sprintant sur une passe en retrait mal ajustée, devançant deux défenseurs grâce à sa vitesse avant de réaliser une finition clinique pour son quatrième but en championnat cette saison.
La tâche du Real s'est compliquée lorsque le défenseur central espagnol Huijsen, recruté à Bournemouth cet été, a été expulsé pour avoir retenu Oyarzabal qui filait au but.
Malgré leur infériorité numérique, Güler a doublé l'avantage du Real avant la pause d'une belle frappe après une superbe course de la superstar française Mbappé, qui lui a offert le ballon après s'être infiltré depuis la gauche.
Les locaux se sont améliorés en seconde période et ont obtenu un penalty après une main de Carvajal, qu'Oyarzabal a transformé.
Cependant, l'équipe basque n'a pas eu les ressources nécessaires pour prendre des points dans ce match, le gardien de but du Real Madrid, Thibaut Courtois, repoussant par deux fois les tentatives d'Oyarzabal.
Alonso avait prévenu les stars du Real avant le match qu'elles seraient sélectionnées au mérite et, après un après-midi frustrant, Vinicius Junior a été remplacé par Fran Garcia à plus de 20 minutes de la fin, alors que l'entraîneur essayait de fermer la boutique contre son ancienne équipe.
Le Real a tenu bon pendant les six minutes de temps additionnel pour assurer sa victoire.