In this sentence:

People were no longer fighting for ideas; they were now fighting simply for money.

it's completely unacceptable to replace the semicolon with a comma + and :

People were no longer fighting for ideas, and they were now fighting simply for money.

What rule of grammar makes it clear that the second example is grammatically incorrect?


It's not a matter of grammar; in your example, and fails to indicate the contrast between the first part and the second part. Replace it with another conjunction, but, and it works:

People were no longer fighting for ideas, but they were now fighting simply for money.

The semicolon itself has this contrasting property 'built in':

Applications of the semicolon in English include:
...
Between closely related independent clauses not conjoined with a coordinating conjunction, when the two clauses are balanced, opposed or contradictory

(emphasis mine)