The B304 consists of three short link roads between A-roads in Chelsea.
It starts on the A3218 by South Kensington tube station. It heads southeast along Onslow Square and Sydney Place before meeting the A308 Fulham Road. It multiplexes southwest along this road for one block before regaining its number and continuing along Sydney Street.
At the other end of the road it meets the A3217 opposite Chelsea Library. Again there is a multiplex southwest for a block along this road, although the distance is somewhat more than along the A308. The B304 then continues south along Oakley Street to end on the A3212 Chelsea Embankment, opposite the northern end of Albert Bridge.
Originally the B304 crossed Albert Bridge before bearing right onto Cambridge Street and ending on the then-A3206 Battersea Bridge Road. This section is now numbered A3031.