On 31 October 2013, Osborne joined League One club Bristol City on a one-month loan, which was later extended to 5 January 2014. He was signed as cover for injured loanee Lewis Dunk and immediately went into the starting lineup. Despite missing almost a month after incurring a suspension for a red card received at the end of November, Osborne regained his place upon his return and joined the club on a two-and-a-half-year contract for an undisclosed fee on 7 January 2014. He scored his first goal for the Robins against his former club Brentford, in a 3–1 defeat at Griffin Park on 28 January. Osborne remained a regular starter through to the end of the 2013–14 season and finished the campaign with 29 appearances and one goal.