As reported by AFL.com.au's Peter Ryan on Thursday night, Bruce was prepared to enter the pre-season draft if he was not traded on the final day of the Gillette AFL Player Exchange Period.
But after initially baulking at an offer of pick 41, the Giants eventually decided to accept pick 48, which St Kilda received as part of the deal that made ruckman Brisbane Lions ruckman Billy Longer a Saint.
Indicative draft order
Bruce has played 14 games for just one win with the Giants after making his debut in round 5, 2012.
The talented defender from Canberra attracted interest from several Victorian clubs.
St Kilda's effort in gaining Bruce looks to have completed a busy trade period for the club.
Along with Longer and Bruce, the Saints also gained defender Luke Delaney from North Melbourne and Shane Savage from Hawthorn.
Savage arrived as part of the surprise deal that sent ruckman Ben McEvoy to the Hawks.
In addition to McEvoy, the club also parted ways with free agent Nick Dal Santo.
The fact that pick No. 48 was involved in the Bruce deal continued a circuitous journey for that selection in the upcoming NAB AFL Draft.
Pick 48 was initially held by Essendon, which traded it to Greater Western Sydney in exchange for Shaun Edwards and Kurt Aylett.
The Giants then sent the pick to the Brisbane Lions as part of the deal that took Jared Polec from the Lions to Port Adelaide.
The Lions gave it to St Kilda as part of the Longer deal, then the Saints gave it back to Greater Western Sydney for Bruce.
Twitter: @AFL_AdamMcNicol