Sending fund to an existing bitcoin address BTC address1 has 2 BTC
BTC address2 has  4.5 BTC
Assume the address is reused, the fee is zero.
Address2 sends 1.5 BTC to address1.
Thus, BTC address1 has 3.5 BTC and BTC address2 has 3BTC
Since BTC address1 is receiving fund, it does not need to sign anything.
The transaction
Input: 4.5 BTC address2 , output: BTC address2 : 3 BTC (return change), BTC address1: 1.5)
How does the blockchain know that BTC address1 got 3.5 BTC?
How does the blockchain know that BTC address1 got 3.5 BTC?

It doesn't know anything, it's just a list
Wallets and other software know by looking through the whole list of transactions from the beginning of time† and adding up all the amounts received by address 1 and subtracting all the amounts spent from address 1.

† Bitcoin time effectively started 12 January 2009