You need to save the PID of the background process at the time you start it:
foo & FOO_PID=$! # do other stuff kill $FOO_PID
You cannot use job control, since that is an interactive feature and tied to a controlling terminal. A script will not necessarily have a terminal attached at all so job control will not necessarily be available.