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.

What is the difference between owan, chawan and yunomi?
Niku Niku Udon Dark-colored soup was not familiar, but…
a singing man
Uncomfortable with karaoke? My solution
itadakimasu
What Japanese people say before ( after ) eating meal
Why do the Japanese wear a mask? I asked a female colleague why
Horumon sounds gross? but worth trying
Matsu Bashou
Haiku rules: pattern and kigo
a female seisei
This is how I ( do not ) use “sensei”