Sachverhalt: A. A.a. X._ wird vorgeworfen, er habe den Kreditvermittler Y._ beim betrügerischen Unterfangen unterstützt, mittels Falschangaben die Fremdfinanzierung seines privaten Bauprojekts zu erwirken. Y._ sei in den Jahren 2009/2010 in einer Reihe von Fällen als Vermittler zwischen Bauinteressenten einerseits und Fertighauserstellern sowie finanzierenden Banken anderseits aufgetreten. Bei verschiedenen Banken habe er unter anderem gefälschte und/oder unwahre Unterlagen über die finanziellen Verhältnisse der Kaufinteressenten eingereicht und so eine nicht vorhandene Bonität der Bauherrschaften vorgetäuscht. Für das Bauprojekt von X._ (Einfamilienhaus mit Einliegerwohnung in U._) habe Y._ eine Finanzierungsanfrage an die Bank A._ Flawil mit unwahren, teils gefälschten Unterlagen eingereicht. In einer Lohnzusammenstellung habe er ein zu hohes Haupteinkommen und fiktive Einkommen aus Nebentätigkeiten als Call Agent von Fr. 17'215.30 sowie als Hauswart von Fr. 18'900.-- angegeben, weiter fiktive Einnahmen aus der Vermietung der Einliegerwohnung von Fr. 15'600.--. Auf einem Ausdruck der EDV-Steuererklärung für das Jahr 2008 habe Y._ das tatsächliche Haupterwerbseinkommen um Fr. 11'093.-- erhöht und fiktive Nebenerwerbseinkünfte von Fr. 34'963.-- sowie fiktive Wertschriften und Guthaben von Fr. 56'400.-- eingefügt. Zudem habe er Lohnabrechnungen über die fiktiven Nebenerwerbe sowie einen fiktiven Vormietvertrag vorgelegt. X._ habe seinem Bankberater die beiden nichtexistenten nebenberuflichen Tätigkeiten wider besseren Wissens mündlich bestätigt. Infolge dieser Täuschungen habe die Bank ein unwiderrufliches Zahlungsversprechen über Fr. 255'000.-- ausgestellt und mit X._ einen Baufinanzierungsvertrag über Fr. 650'000.-- abgeschlossen. Von dieser Kreditsumme sei ein Betrag von Fr. 215'107.85 ausbezahlt worden. A.b. Das Kreisgericht St. Gallen sprach X._ (nebst einer groben Verletzung von Verkehrsregeln) des Betrugs für schuldig. Es verurteilte ihn insgesamt zu einer bedingten Geldstrafe von 90 Tagessätzen (Probezeit zwei Jahre) sowie zu einer Busse von Fr. 800.-- (Urteil vom 23. Dezember 2015). B. X._ legte Berufung ein, die Staatsanwaltschaft des Kantons St. Gallen Anschlussberufung. Das Kantonsgericht St. Gallen erklärte X._ des Betrugs (und der groben Verletzung von Verkehrsregeln) schuldig und verurteilte ihn insgesamt zu einer bedingten Geldstrafe von 150 Tagessätzen (Probezeit zwei Jahre) und zu einer Busse von Fr. 800.-- (Urteil vom 25. September 2017). C. X._ führt Beschwerde in Strafsachen. Er stellt den Antrag, das angefochtene Urteil sei aufzuheben und er vom Vorwurf des Betrugs freizusprechen. Eventuell sei die Sache zur neuen Entscheidung an die Vorinstanz zurückzuweisen. Die Staatsanwaltschaft schliesst auf Abweisung der Beschwerde.