I thought there was almost no difference, but to be exact, there is.

In kanji, it may be easier to understand the gap.

a fighting man or a serving man

bushi: 武士
武 (bu) means ” a fighter with a weapon “
 
士 (shi) means ” a man “
 
So in a strict sence, bushi means ” a fighting man with a weapon “
 
samurai: 侍
侍 means “one who serves.” Samurai served to a noble or a imperial family.
 
People (including Japanese) tend to call a man with katana swords ” samurai”.

 
But it would be more accurate if we call him ” bushi “.
 
Even japanese people are not aware of these difinitions, so nobody points out which word you should use.

Tai sea bream a symbol of auspiciousness
What is the difference between owan, chawan and yunomi?
Climate in Japan
pitcher
Matsuzaka will do a good job in the U.S.
親指を立てる女の子
richigi(na)律義(な)in English
Hanami is over
family
Konbanwa is not used often. Maybe least frequent among greetings.
“Nice to meet you” in Japanese