The Belgian has spent three seasons on loan at Atletico Madrid and looks set to challenge Petr Cech for the number one shirt at Stamford Bridge this season.
However, his first appearance in Chelsea colours did not go according to plan, with Eljero Elia scoring from the penalty spot and Ludovic Obraniak doubling Bremen's advantage before half-time.
Courtois was replaced by Cech at the break, while Chelsea legend Didier Drogba also made his second debut for the club having signed a one-year deal last week.
However, the Ivorian was unable to spark a Chelsea revival and the London club fell further behind when Felix Kroos converted a late penalty after Nils Petersen was brought down by Nathan Ake.
Courtois was called into action as early as the eighth minute when former Chelsea man Franco Di Santo headed goalwards.
The 22-year-old palmed that effort away, before captain John Terry was guilty of using his own arms to block a cross 20 minutes in, opening the door for Elia to slot beyond the Chelsea debutant from 12 yards.
Jose Mourinho's men attempted to push for an immediate response, but appeared short of ideas going forward, with Bremen able to deal with everything the visitors threw at them.
And Courtois was left to pick the ball out of the net once again eight minutes before the break, when Obraniak rose well to direct a header in the bottom left-hand corner.
Mohamed Salah found the net for the visitors before the break, but he was deemed to be offside following good work from Chelsea new boys Cesc Fabregas and Diego Costa.
Mourinho introduced Drogba in a bid to change his side's fortunes, but the sheer number of changes that followed robbed the match of any flow or tempo, meaning chances were at a premium.
The match threatened to liven up once again in the closing stages, and Kroos' 89th-minute penalty put the result beyond doubt.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.