BL (boys love) was a term originally used in the Japanese publishing industry for mxm stories that were generally written by women for a female audience. Yaoi is used interchangeably. But a lot of people see yaoi as more sexual while BL can be simple G-rated fluff.
Bara is generally written by gay men for gay men and normally features more masculine characters with muscle, fat, and body hair (as opposed to the pretty boys often found in BL).
Bara was considered separate from BL and yaoi, but nowadays you can find people who interchange terms all the time and the definitions have broadened from their specific historic uses. However, bara is still usually classified by the type of men depicted in the stories, ones that wouldn't look out of place among 'bears'.