Tiếng sáo trúc dìu dặt vang lên giữa không gian tĩnh mịch của buổi chiều tà. Ánh hoàng hôn nhuộm đỏ rặng tre đầu làng, hắt bóng hai chàng trai ngồi tựa lưng vào nhau bên bờ sông. Một người là Quang Anh, thư sinh nho nhã với đôi mắt buồn man mác. Người kia là Đức Duy, chàng trai khỏe khoắn, da rám nắng, nụ cười hiền hậu nhưng ẩn chứa một nỗi niềm sâu kín.
Họ lớn lên cùng nhau ở một ngôi làng nhỏ yên bình, nơi những cánh đồng lúa trải dài và dòng sông uốn lượn hiền hòa. Tình bạn của Quang Anh và Đức Duy nảy nở tự nhiên như cây cỏ mùa xuân, rồi dần dà, một thứ tình cảm sâu đậm hơn đã len lỏi vào trái tim họ, thứ tình cảm mà cả hai đều biết là không được xã hội đương thời chấp nhận.
Quang Anh, vốn là con trai một gia đình quan lại sa sút, mang trong mình sự nhạy cảm và tâm hồn nghệ sĩ. Đức Duy, mồ côi cha từ nhỏ, lớn lên nhờ sự đùm bọc của dân làng, mạnh mẽ và chân chất. Hai con người với xuất thân và tính cách khác biệt lại tìm thấy sự đồng điệu và an ủi nơi nhau.
Họ thường hẹn hò bên bờ sông vắng, trao nhau những lời tâm sự thầm kín, những ánh mắt chứa chan và những cái nắm tay khẽ khàng. Tiếng sáo trúc của Quang Anh luôn là khúc nhạc tình yêu dịu dàng dành riêng cho Đức Duy. Đức Duy lại dùng sự mạnh mẽ và chân thành của mình để che chở, bảo vệ cho tâm hồn mỏng manh của Quang Anh.
Nhưng cuộc sống ở làng quê không thể mãi bình lặng. Những lời đồn thổi bắt đầu lan ra, những ánh mắt dò xét, những lời bàn tán sau lưng khiến cả hai thêm nặng trĩu. Gia đình Quang Anh, dù không còn quyền thế như xưa, vẫn đặt nặng lễ giáo và danh dự. Họ tìm mọi cách ngăn cấm mối quan hệ "trái luân thường đạo lý" này.
Áp lực từ gia đình và xã hội ngày càng lớn. Quang Anh trở nên tiều tụy, đôi mắt ngày càng thêm u buồn. Đức Duy cố gắng mạnh mẽ hơn để bảo vệ người mình yêu, nhưng sự đơn độc chống lại cả một định kiến xã hội khiến anh dần cảm thấy bất lực.
Một ngày nọ, gia đình Quang Anh quyết định ép anh cưới con gái một nhà phú hộ trong vùng. Đó là một cuộc hôn nhân môn đăng hộ đối, có thể giúp gia đình anh vực dậy. Quang Anh đau khổ tột cùng, nhưng anh không đủ dũng khí để chống lại ý muốn của gia đình, không muốn làm tổn thương những người thân yêu.
Đức Duy nghe tin mà lòng tan nát. Anh tìm đến Quang Anh vào một đêm trăng mờ bên bờ sông quen thuộc. Họ ôm nhau thật chặt, những giọt nước mắt nóng hổi lăn dài trên má. Không lời nào có thể diễn tả hết nỗi đau và sự tuyệt vọng trong lòng họ.
"Anh phải làm sao đây, Duy?" Quang Anh nghẹn ngào hỏi, giọng lạc đi vì nức nở.
Đức Duy siết chặt vòng tay, cố gắng kìm nén tiếng nấc: "Em xin lỗi... em không đủ mạnh mẽ để giữ anh lại."
Đêm đó, bên dòng sông chứng kiến bao nhiêu kỷ niệm đẹp của họ, cũng là đêm cuối cùng họ được ở bên nhau.
Ngày Quang Anh lên kiệu hoa, Đức Duy đứng lặng lẽ ở cuối làng, nhìn theo bóng dáng khuất dần. Trái tim anh như bị ai đó bóp nghẹt, một nỗi đau tê tái lan tỏa khắp cơ thể. Tiếng sáo trúc buồn bã vang lên lần cuối, một khúc nhạc chia ly nghẹn đắng.
Sau ngày Quang Anh đi lấy chồng, Đức Duy rời bỏ làng quê. Anh mang theo nỗi nhớ thương da diết và những kỷ niệm không thể nào quên về mối tình đầu ngang trái. Không ai biết anh đã đi đâu, chỉ biết rằng từ đó, tiếng sáo trúc buồn bã bên bờ sông không còn vang lên nữa.
Quang Anh sống trong cuộc hôn nhân không tình yêu, gượng ép và lạnh lẽo. Dù có cuộc sống vật chất đầy đủ, nhưng trái tim anh vẫn luôn hướng về hình bóng người xưa. Anh thường ra ngắm trăng, nhớ về những đêm trăng họ cùng nhau trò chuyện, nhớ về tiếng sáo trúc ấm áp.
Nhiều năm sau, người ta kể rằng có một người đàn ông lạ mặt, dáng vẻ phong trần, thỉnh thoảng lại về thăm ngôi làng cũ. Ông thường đứng lặng lẽ bên bờ sông, nơi xưa kia Quang Anh và Đức Duy thường hẹn hò, rồi lặng lẽ rời đi trước khi trời sáng. Có lẽ, đó là Đức Duy, người vẫn không thể quên được mối tình dang dở của mình.
Cuộc đời của Quang Anh và Đức Duy rẽ sang hai con đường khác nhau, mang theo những vết thương lòng không bao giờ lành. Tình yêu của họ, dù đẹp đẽ và chân thành, đã không thể vượt qua được những rào cản nghiệt ngã của xã hội phong kiến, để lại một kết thúc buồn day dứt cho những người ở lại.