Disclaimer: most of the dates and historical embellishment in my answer come from the Wikipedia page on the History of the Hindu-Arabic Numeral System.
A full answer requires distinguishing between two different uses for 'zero':
As a placeholder in a positional system of writing numbers. For example, when we write 206 we mean 'two hundreds, no tens and six units'.
As a number in itself, for example in calculations like 5 - 3 - 2 = 0
I'll briefly give some color on these two different uses.
In the first sense of the word, the Babylonians were using a positional system since before 300BC (their system was base 60 instead of the base 10 that we use, but otherwise it is similar). However, they didn't use a zero at the end of a number. This is as if we made no distinction between the numbers 2, 20 and 200 (although they did distinguish between 16 and 106).
The oldest known text using a decimal positional system, in the sense that we understand it today, come from India: the Jain text Lokavibhaga, dated 458 AD (ref: here). The author uses the Sanskrit word for 'void' to denote the positional digit zero.
The first undisputed use of the symbol for zero (0) is an inscription on a copper plate at Gwalior, in India, dated 876 AD.
However, the transmission to Europe of the numeral zero came via the Italian mathematician Fibonacci, who got it from the Arabic mathematician al-Khwarizmi, writing around 976 AD, leading to the common English term 'Arabic numerals' and the belief that the positional system for notating numbers had been invented in the Arab world.
In the second sense, Henry's answer usefully quotes from Wikipedia:
The rules governing the use of zero appeared for the first time in Brahmagupta's book Brahmasputha Siddhanta (The Opening of the Universe), written in 628 AD.
He listed several rules for calculating with zero which would be familiar to use today, including "the sum of zero and a positive number is positive" and "the sum of zero and zero is zero".
However, the word for zero in English again comes from Arabic, rather than Hindi.