Od maja 2001 do lipca 2002 oraz od stycznia 2009 do maja 2010 był przewodniczącym klubu parlamentarnego ČSSD. Od 15 lipca 2002 do 4 września 2006 zajmował stanowisko ministra finansów w rządach Vladimíra Špidli, Stanislava Grossa i Jiříego Paroubka. Od 30 października 2003 do 4 sierpnia 2004 oraz ponownie od kwietnia 2005 do września 2006 pełnił funkcję wicepremiera. W 2005 po rezygnacji ze stanowiska przewodniczącego ČSSD przez Stanislava Grossa pełnił tymczasowo funkcję przewodniczącego partii (do 2006). Funkcję tę objął również po rezygnacji Jiříego Paroubka po wyborach w 2010, zaś w 2011 formalnie został wybrany na nowego przewodniczącego ČSSD.
W wyborach parlamentarnych w 2013 socjaldemokraci nieznacznie wyprzedzili nowe ugrupowanie ANO 2011. Obie partie wraz z KDU-ČSL zawiązały po kilku miesiącach koalicję rządową. 17 stycznia 2014 Bohuslav Sobotka odebrał nominację na urząd premiera. Jego rząd w pełnym składzie został zaprzysiężony 29 stycznia tego samego roku.