Mauricio Pochettino's side had the better of the opening 45 minutes, but could not get the better of a side that will take part in the UEFA Champions League in coming campaign.
The half-time introduction of Klaas-Jan Huntelaar seemed to swing things back in Schalke's favour, with the Holland international opening the scoring just before the hour mark.
Both sides made a raft of changes soon afterwards, and it was the German side who seized the initiative and doubled their lead through Joël Matip on 69 minutes.
There was plenty of effort from Saints, but ultimately came up short against an outfit who are only 12 days from their first competitive match of the coming season.
Ahead of the game, Guly – a hat-trick hero in last Wednesday's demolition of Spanish lower-leaguers Palamós – was ruled out with a thigh injury sustained in training on Monday.
Maya Yoshida and Gastón Ramírez also missed out as they continue their personalised pre-season programmes following their involvement at the 2013 FIFA Confederations Cup.
Pochettino named a team that saw Kelvin Davis return in goal after being left out of last Wednesday's game on the Costa Brava.
As he did against Palamós, Calum Chambers started at right back with Dejan Lovren and Jos Hooiveld the chosen centre-halves and Luke Shaw at left-back.
Victor Wanyama and Steven Davis were paired in the heart of midfield, with Jason Puncheon and Lloyd Isgrove on the wings. Rickie Lambert and Jay Rodriguez were given the nod as a front two.
Rodriguez – with three pre-season goals to his name already – looked dangerous early on as he pinched the ball from Jermaine Jones and played it to Lambert via Davis, but the move was brought to an end by an offside flag.
Then, in the eleventh minute, a good overlapping run by Chambers led to him crossing into the box but Lambert's powered header was held by Schalke goalkeeper Timo Hildebrand.
Schalke almost carved out a chance on the quarter-hour when a long ball forward set Michel Bastos clear of Lovren only for it to overrun him and to allow Saints stopper Davis to claim.
Saints quickly got themselves back into the ascendancy, though, with Isgrove knocking the ball past Atsuto Uchida only to see his quickly-taken drive fizz just wide of the Schalke goal.
The ball almost broke in the box for Rodriguez on the half-hour but Hildebrand was quick to claim, and the Germany international was at his best again two minutes later as he held Puncheon's pile-driver shot.
Schalke briefly threatened before the half came to an end as a whipped free-kick from Christian Fuchs was only headed as far as Bastos, but his half-volley was poorly struck so Davis saved with ease.
HALF TIME: SOUTHAMPTON 0-0 FC SCHALKE 04
Both sides made three changes each at the break, with Saints bringing on Adam Lallana, Morgan Schneiderlin and José Fonte in place of Isgrove, Steven Davis and Hooiveld.
Huntelaar, one of Schalke's half-time replacements, had the first chance of the second period when he got his head on the end of a Bastos cross but his effort was excellently held by Davis.
And it was HUNTELAAR who broke the deadlock two minutes before the hour when, after Christian Clemens got between Fonte and Davis, the Dutch international was on hand to bundle in on the rebound.
Pochettino made six changes soon afterwards, bringing on Paulo Gazzaniga, Nathaniel Clyne, Danny Fox, Jack Cork, Emmanuel Mayuka and James Ward-Prowse on for Davis, Chambers, Shaw, Wanyama, Lambert and Rodriguez.
However, the substitutions did not have the desired effect as it was Schalke who soon scored the second goal of the game as MATIP seized on some defensive hesitancy to nip in and poke past Gazzaniga with 69 on the clock.
That blow seemed to kill off any hopes of a positive result for Saints, though Adam Lallana did have a half-chance to pull one back on 75 minutes but his attempted overhead kick was blocked.
Pochettino's men did give it a go in the closing stages but could only muster half-chances as Schalke's class told. However, manager Pochettino will undoubtedly be happy with the level of performance and effort put in by his players.
FULL TIME: SOUTHAMPTON 0-2 FC SCHALKE 04
Saints team: Kelvin Davis (c) (Paulo Gazzaniga 64), Calum Chambers (Nathaniel Clyne 64), Dejan Lovren, Jos Hooiveld (José Fonte 46), Luke Shaw (Danny Fox 64), Victor Wanyama (Jack Cork 64), Steven Davis (Morgan Schneiderlin 46), Lloyd Isgrove (Adam Lallana 46), Jason Puncheon, Jay Rodriguez (James Ward-Prowse 64), Rickie Lambert (Emmanuel Mayuka 64). Unused substitutes: Artur Boruc (GK), Jordan Turnbull.
Booking: Shaw (48)
Schalke team: Timo Hildebrand, Atsuto Uchida, Kaan Ayhan (Joël Matip 46), Benedikt Höwedes (Tim Hoogland 64), Christian Fuchs, Leon Goretzka, Jermaine Jones (Roman Neustädter 73), Tranquillo Barnetta (Christian Clemens 46), Julian Draxler (Klaas-Jan Huntelaar 46), Michel Bastos (Max Meyer 64), Adem Szalai (Timo Pukki 64).
Goals: Huntelaar (58), Matip (69)