Spanish police have pulled off one of the biggest-ever drug hauls in the country's history intercepting 331 kilos of heroin most at Barcelona's port where it was hidden inside cement bags sent from Turkey.

The operation began when police intercepted the sale of 25 kilos of heroin in a deal involving four men since charged with drug trafficking.

Another 43 kilos was found at the homes of suspects during a search where three hand guns were also confiscated.

The single seizure surpasses the 253 kilograms discovered by Spanish police in 2016.