I've read that even in Latin, we see some variability in the declension of words as neuter or masculine. Sometimes the use of the masculine where neuter would be expected is attributed to "personification". So the fall of the neuter seems to have been a long and at least somewhat gradual process. I will update this post if I find more detailed information.
There are some reasons to think of the neuter gender in Latin as being less robustly distinguished formally and semantically than the masculine and feminine genders, although this might just be hindsight.
I would guess that form was more important than semantics, since in some Germanic languages we can see a different tendency to go from three to two genders by merging the former masculine and feminine into a "common" gender and maintaining a distinction between "common" and neuter gender.
The neuter as a distinct form (and its loss)
As Arnaud Fournet said, neuter gender nouns in Latin were in most grammatical cases declined the same way as masculine nouns. The neuter-masculine distinction was made in:
a) the nominative and accusative plural, where neuters had a characteristic -a ending. Because -a was also used as a feminine singular ending, Latin neuter plurals in -a could end up as feminine nouns in Romance languages, as mentioned in Fournet's answer. I know of two ways this happened. As Fournet said, neuter plural nouns ending in -a could be reinterpreted as feminine singular nouns. Additionally, there is still a remnant of -a as a plural ending in some Romance languages, such as Italian; the examples given on this page are il dito, il uovo, il lenzuolo with the plurals le dita, le uova, le lenzuola. You can see that plural -a nouns in Italian take feminine plural agreement.
b) the nominative singular, where masculine nouns mostly ended in -s while neuter nouns mostly did not. In most Romance languages, Latin nominative singular forms were either mostly lost or heavily remodeled in a way that caused the distinction between masculine and neuter nominative singular nouns to become less relevant. Sound changes like the loss of word-final -m, or often of -s, and the addition or loss of word-final -e after consonants played a role here. There are a few Romance languages that have a distinction between -u and -o-final words, but their distribution is different from that of Latin masculine and neuter nouns.
c) the accusative singular for a few kinds of words, such as third-declension nouns ending in -alem m. vs. -ale n. But with the loss of word-final -m, those forms would have merged as -ale.
And in the accusative singular of o-stems, a very common category of masculine or neuter nouns, the masculine and neuter forms were identical already in Classical Latin, both ending in -um.
The semantics of the neuter overlapped substantially with the other two genders
The masculine and feminine genders in Latin both had clear semantic "cores" of male and female animates, respectively. While many nouns were masculine and feminine without belonging to these semantic categories, the association was productive and has been maintained to the present day in Romance languages with gender (we can see the continued relevance of semantics to gender assignation most clearly when dealing with gender agreement for proper names or pronouns that refer to human beings).
The neuter gender, in contrast, wasn't associated with any one particular semantic domain. It included some, but by no means all, nouns that were neither semantically male nor female. The lack of a clear distinction in meaning corresponding to the distinction in form between masculine and neuter nouns may have contributed to the eventual loss of the neuter.
In the Romance languages with an -u vs. -o distinction that I mentioned above, words fall into one category or the other not on the basis of their gender in Latin, but rather based on semantic criteria, like being a mass noun vs. a count noun.