Faits : A. A.a. X._, ressortissant algérien né en 1989, a déposé une première demande d'asile en Suisse le 25 mars 2011, sur laquelle l'Office fédéral des migrations (ODM, devenu le Secrétariat d'Etat aux migrations), par décision du 19 avril 2011, n'est pas entré en matière, tout en prononçant le renvoi de Suisse de l'intéressé. Le Tribunal administratif fédéral a confirmé cette décision par arrêt du 3 mai 2011. X._ a déposé une seconde demande d'asile le 23 septembre 2011. Par décision du 13 octobre 2011, l'Office fédéral des migrations n'est pas entré en matière sur cette demande et a ordonné le renvoi de Suisse de X._. Après un bref séjour en France, celui-ci est revenu en Suisse aux alentours du 12 novembre 2011. A.b. Depuis le dépôt de sa première demande d'asile, X._ a été condamné pénalement à dix reprises: - le 5 octobre 2011, à une peine pécuniaire de 60 jours-amende à 30 fr. le jour, avec sursis pendant deux ans (révoqué le 23 novembre 2011), et à une amende de 400 fr., pour violence ou menace contre les autorités et les fonctionnaires, - le 23 novembre 2011, à une peine privative de liberté de 60 jours, pour entrée et séjour illégaux, - le 24 avril 2012, à une peine privative de liberté de 60 jours, ainsi qu'à une amende de 300 fr., pour vol, complicité de vol, faux dans les certificats, séjour illégal et contravention à la loi fédérale sur les stupéfiants, - le 15 juin 2012, à une peine privative de liberté de 150 jours et à une amende de 300 fr., pour vol, dommages à la propriété et violation de domicile, - le 29 juin 2012, à une peine privative de liberté de quatre mois et à une amende de 500 fr., pour lésions corporelles simples, vol et violation de domicile, ainsi que séjour illégal, - le 9 avril 2013, à une peine privative de liberté de 30 jours, pour tentative de vol, dommages à la propriété et contravention à la loi fédérale sur les stupéfiants, - le 24 septembre 2013, à une peine privative de liberté de 50 jours, pour séjour illégal, - le 30 juin 2014, à une peine privative de liberté de 30 jours, pour séjour illégal, - le 12 mai 2015, à une peine privative de liberté de cinq jours, ainsi qu'à une amende de 300 fr., pour vol et vol d'importance mineure (faits commis les 28 avril et 4 mai 2015), - le 3 novembre 2015, à une peine privative de liberté de 100 jours, pour activité lucrative sans autorisation et séjour illégal. B. En mars 2014, X._ et Y._, ressortissante suisse, ont entrepris des démarches auprès de l'Office de l'état civil de Lausanne (ci-après: l'Office de l'état civil) pour se marier. Dans ce cadre, X._ a sollicité auprès du Service de la population du canton de Vaud (ci-après: le Service cantonal) une autorisation de séjour en vue du mariage. Par décision du 9 février 2015, le Service cantonal a refusé l'autorisation demandée et a sommé l'intéressé de quitter immédiatement le canton de Vaud. Le recours formé par X._ contre ce prononcé a été rejeté par la Cour de droit administratif et public du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal) par arrêt du 30 avril 2015. En substance, le Tribunal cantonal a retenu qu'il n'apparaissait pas que X._ remplirait les conditions à l'octroi d'une autorisation de séjour après son union compte tenu de ses antécédents pénaux, de sorte que le Service cantonal pouvait refuser de lui délivrer une autorisation en vue du mariage. Le 13 mai 2015, X._ a sollicité le réexamen de la décision du Service cantonal du 9 février 2015, en indiquant comme élément nouveau que sa future épouse était enceinte. Par décision du 17 juin 2015, le Service cantonal n'est pas entré en matière sur cette demande et a sommé X._ de quitter le territoire cantonal. Cette décision est entrée en force. Le 14 septembre 2015, l'Office de l'état civil, constatant que X._ ne séjournait pas légalement en Suisse, a déclaré irrecevable la procédure de mariage introduite par l'intéressé et sa compagne. Ceux-ci ont formé recours au Tribunal cantonal contre ce prononcé, qu'ils ont par la suite retiré, ce dont il a été pris acte (décision du 3 mars 2016). C. Y._ a donné naissance le 22 novembre 2015 à l'enfant Z._, que X._ a reconnue le 4 février 2016. En avril 2016, X._ et Y._ ont ouvert une nouvelle procédure de mariage auprès de l'Office de l'état civil. Le 19 mai 2016, X._ a déposé auprès du Service cantonal une nouvelle demande d'autorisation de séjour en vue du mariage. Par décision du 30 novembre 2016, le Service cantonal a rejeté cette demande, qu'il a traitée comme une requête de réexamen de sa décision du 9 février 2015. Contre cette décision, X._ a formé un recours au Tribunal cantonal, qui l'a rejeté par arrêt du 22 décembre 2017. D. Agissant par la voie du recours en matière de droit public, X._ demande au Tribunal fédéral, sous suite de frais et dépens, principalement de réformer l'arrêt du 22 décembre 2017 "en ce sens que la décision du Service cantonal du 30 novembre 2016 est annulée" et qu'une autorisation de séjour en vue du mariage lui est délivrée. Subsidiairement, il requiert la réforme de l'arrêt entrepris, en ce sens que la décision du 30 novembre 2016 est annulée, et le renvoi de la cause au Tribunal cantonal ou au Service cantonal pour nouvelle instruction et nouvelle décision dans le sens des considérants. Le 6 février 2018, X._ a sollicité l'octroi de l'effet suspensif et, le 13 février 2018, le bénéfice de l'assistance judiciaire. Le 14 février 2018, le Tribunal fédéral a renoncé provisoirement à exiger une avance de frais et informé l'intéressé qu'il serait statué ultérieurement sur l'octroi de l'assistance judiciaire. Par ordonnance présidentielle du 21 février 2018, il a rejeté la requête d'effet suspensif. Le Service cantonal a renoncé à se déterminer sur le recours. Le Tribunal cantonal en a fait de même, en se référant aux considérants de son arrêt. Le Secrétariat d'Etat aux migrations ne s'est pas déterminé.