As you probably know, smoke is made of a lot of tiny particles -- mostly solid, some liquid --
suspended in air. The particles are a lot heavier (more dense) than air, so why don't they sink out
and go down rather than going upward?
Here is an explanation of sorts:
A fire makes things hot. Above a fire, you get quite a lot of hot air. Hot air is less dense than cool
air, so it rises. Because there is quite a lot of hot air, it makes quite a big wind current as it rises,
and that drags the smoke particles upward with the air, in much the same way as wind can raise
dust. Some of the smoke particles are very small indeed, so they can be held up in the air for quite
a long time, and they do not settle out from the air until a long time after they leave the fire, and
usually some distance away from the fire.