The deal, announced Friday, comes as the airline struggles with the economic impact of the coronavirus which has seen it propose lay-offs of 12,000 staff, more than 1,200 of those pilots.
Salaries will initially be reduced by 20 percent, then by eight percent over two years, after which there will be no more wage cuts, said BALPA.
It also prevents, said the union, an unpopular "fire and rehire" scheme where staff would have been handed new contracts on different conditions and which had led to strike threats.
"Our members have made a pragmatic decision in the circumstances but the fact that we were unable to persuade BA to avoid all compulsory redundancies is bitterly disappointing," said BALPA general secretary Brian Strutton.
British Airways employs 4,300 pilots.
The deal was backed by 85 percent of pilots, said BALPA, and the turnout was 87 percent.
Earlier this week, BA criticised the British government for placing quarantine rules on all travellers returning from Spain, claiming it would have an "impact on an already troubled aviation industry".